<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 數據供給器 測試方法可以接受任意參數。這些參數由數據供給器方法(在 [Example?2.5, “使用返回數組的數組的數據供給器”](# "Example?2.5.?使用返回數組的數組的數據供給器")中,是 `additionProvider()` 方法)提供。用 `@dataProvider` 標注來指定使用哪個數據供給器方法。 數據供給器方法必須聲明為 `public`,其返回值要么是一個數組,其每個元素也是數組;要么是一個實現了 `Iterator` 接口的對象,在對它進行迭代時每步產生一個數組。每個數組都是測試數據集的一部分,將以它的內容作為參數來調用測試方法。 **Example?2.5.?使用返回數組的數組的數據供給器** ~~~ <?php class DataTest extends PHPUnit_Framework_TestCase { /** * @dataProvider additionProvider */ public function testAdd($a, $b, $expected) { $this->assertEquals($expected, $a + $b); } public function additionProvider() { return array( array(0, 0, 0), array(0, 1, 1), array(1, 0, 1), array(1, 1, 3) ); } } ?> ~~~ ~~~ phpunit DataTest PHPUnit 5.0.0 by Sebastian Bergmann and contributors. ...F Time: 0 seconds, Memory: 5.75Mb There was 1 failure: 1) DataTest::testAdd with data set #3 (1, 1, 3) Failed asserting that 2 matches expected 3. /home/sb/DataTest.php:9 FAILURES! Tests: 4, Assertions: 4, Failures: 1. ~~~ 當使用到大量數據集時,最好逐個用字符串鍵名對其命名,避免用默認的數字鍵名。這樣輸出信息會更加詳細些,其中將包含打斷測試的數據集所對應的名稱。 **Example?2.6.?使用帶有命名數據集的數據供給器** ~~~ <?php class DataTest extends PHPUnit_Framework_TestCase { /** * @dataProvider additionProvider */ public function testAdd($a, $b, $expected) { $this->assertEquals($expected, $a + $b); } public function additionProvider() { return array( 'adding zeros' => array(0, 0, 0), 'zero plus one' => array(0, 1, 1), 'one plus zero' => array(1, 0, 1), 'one plus one' => array(1, 1, 3) ); } } ?> ~~~ ~~~ phpunit DataTest PHPUnit 5.0.0 by Sebastian Bergmann and contributors. ...F Time: 0 seconds, Memory: 5.75Mb There was 1 failure: 1) DataTest::testAdd with data set "one plus one" (1, 1, 3) Failed asserting that 2 matches expected 3. /home/sb/DataTest.php:9 FAILURES! Tests: 4, Assertions: 4, Failures: 1. ~~~ **Example?2.7.?使用返回迭代器對象的數據供給器** ~~~ <?php require 'CsvFileIterator.php'; class DataTest extends PHPUnit_Framework_TestCase { /** * @dataProvider additionProvider */ public function testAdd($a, $b, $expected) { $this->assertEquals($expected, $a + $b); } public function additionProvider() { return new CsvFileIterator('data.csv'); } } ?> ~~~ ~~~ phpunit DataTest PHPUnit 5.0.0 by Sebastian Bergmann and contributors. ...F Time: 0 seconds, Memory: 5.75Mb There was 1 failure: 1) DataTest::testAdd with data set #3 ('1', '1', '3') Failed asserting that 2 matches expected '3'. /home/sb/DataTest.php:11 FAILURES! Tests: 4, Assertions: 4, Failures: 1. ~~~ **Example?2.8.?CsvFileIterator 類** ~~~ <?php class CsvFileIterator implements Iterator { protected $file; protected $key = 0; protected $current; public function __construct($file) { $this->file = fopen($file, 'r'); } public function __destruct() { fclose($this->file); } public function rewind() { rewind($this->file); $this->current = fgetcsv($this->file); $this->key = 0; } public function valid() { return !feof($this->file); } public function key() { return $this->key; } public function current() { return $this->current; } public function next() { $this->current = fgetcsv($this->file); $this->key++; } } ?> ~~~ 如果測試同時從 `@dataProvider` 方法和一個或多個 `@depends` 測試接收數據,那么來自于數據供給器的參數將先于來自所依賴的測試的。來自于所依賴的測試的參數對于每個數據集都是一樣的。參見[Example?2.9, “在同一個測試中組合使用 @depends 和 @dataProvider”](# "Example?2.9.?在同一個測試中組合使用 @depends 和 @dataProvider") **Example?2.9.?在同一個測試中組合使用 @depends 和 @dataProvider** ~~~ <?php class DependencyAndDataProviderComboTest extends PHPUnit_Framework_TestCase { public function provider() { return array(array('provider1'), array('provider2')); } public function testProducerFirst() { $this->assertTrue(true); return 'first'; } public function testProducerSecond() { $this->assertTrue(true); return 'second'; } /** * @depends testProducerFirst * @depends testProducerSecond * @dataProvider provider */ public function testConsumer() { $this->assertEquals( array('provider1', 'first', 'second'), func_get_args() ); } } ?> ~~~ ~~~ phpunit --verbose DependencyAndDataProviderComboTest PHPUnit 5.0.0 by Sebastian Bergmann and contributors. ...F Time: 0 seconds, Memory: 3.50Mb There was 1 failure: 1) DependencyAndDataProviderComboTest::testConsumer with data set #1 ('provider2') Failed asserting that two arrays are equal. --- Expected +++ Actual @@ @@ Array ( - 0 => 'provider1' + 0 => 'provider2' 1 => 'first' 2 => 'second' ) /home/sb/DependencyAndDataProviderComboTest.php:31 FAILURES! Tests: 4, Assertions: 4, Failures: 1. ~~~ >[info] ### Note > 如果一個測試依賴于另外一個使用了數據供給器的測試,僅當被依賴的測試至少能在一組數據上成功時,依賴于它的測試才會運行。使用了數據供給器的測試,其運行結果是無法注入到依賴于此測試的其他測試中的。 > > 所有的數據供給器方法的執行都是在對 `setUpBeforeClass` 靜態方法的調用和第一次對 `setUp` 方法的調用之前完成的。因此,無法在數據供給器中使用創建于這兩個方法內的變量。這是必須的,這樣 PHPUnit 才能計算測試的總數量。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看