<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 數據庫斷言 API 作為測試工具,數據庫擴展模塊理所當然會提供一些斷言,可以用來驗證數據庫的當前狀態、表的當前狀態、表中數據行的數量。本節將詳細描述這部分功能: ### 對表中數據行的數量作出斷言 很多時候,確認表中是否包含特定數量的數據行是非常有幫助的。可以輕松做到這一點,不需要任何額外的使用連接 API 的粘合劑代碼。比如說,在往留言本中插入一個新行之后,想要確認在表中除了之前的例子中一直都有的兩行之外還有第三行: ~~~ <?php class GuestbookTest extends PHPUnit_Extensions_Database_TestCase { public function testAddEntry() { $this->assertEquals(2, $this->getConnection()->getRowCount('guestbook'), "Pre-Condition"); $guestbook = new Guestbook(); $guestbook->addEntry("suzy", "Hello world!"); $this->assertEquals(3, $this->getConnection()->getRowCount('guestbook'), "Inserting failed"); } } ?> ~~~ ### 對表的狀態作出斷言 前面的這個斷言很有幫助,但是肯定還想要檢驗表的實際內容,好核實是否所有值都寫到了正確的列中。可以通過表斷言來做到這一點。 為此,先定義一個 QueryTable 實例,從表名稱和 SQL 查詢派生出其內容,隨后將其與一個基于文件/數組的數據集進行比較: ~~~ <?php class GuestbookTest extends PHPUnit_Extensions_Database_TestCase { public function testAddEntry() { $guestbook = new Guestbook(); $guestbook->addEntry("suzy", "Hello world!"); $queryTable = $this->getConnection()->createQueryTable( 'guestbook', 'SELECT * FROM guestbook' ); $expectedTable = $this->createFlatXmlDataSet("expectedBook.xml") ->getTable("guestbook"); $this->assertTablesEqual($expectedTable, $queryTable); } } ?> ~~~ 現在需要為這個斷言編寫Flat XML 文件 *expectedBook.xml*: ~~~ <?xml version="1.0" ?> <dataset> <guestbook id="1" content="Hello buddy!" user="joe" created="2010-04-24 17:15:23" /> <guestbook id="2" content="I like it!" user="nancy" created="2010-04-26 12:14:20" /> <guestbook id="3" content="Hello world!" user="suzy" created="2010-05-01 21:47:08" /> </dataset> ~~~ 在整個時間長河中,只有特定的一秒鐘內這個斷言可以通過評定,在 *2010–05–01 21:47:08*。在數據庫測試中,日期構成了一個特殊的問題。可以從這個斷言中省略 “created” 列來規避失敗。 為了讓斷言能得以通過, Flat XML 文件 *expectedBook.xml* 需要調整成大致類似這樣: ~~~ <?xml version="1.0" ?> <dataset> <guestbook id="1" content="Hello buddy!" user="joe" /> <guestbook id="2" content="I like it!" user="nancy" /> <guestbook id="3" content="Hello world!" user="suzy" /> </dataset> ~~~ 還得修正一下 QueryTable 的調用: ~~~ <?php $queryTable = $this->getConnection()->createQueryTable( 'guestbook', 'SELECT id, content, user FROM guestbook' ); ?> ~~~ ### 對查詢的結果作出斷言 利用 QueryTable,也可以對復雜查詢的結果作出斷言,只需要指定查詢以及結果名稱,并隨后將其與某個數據集進行比較: ~~~ <?php class ComplexQueryTest extends PHPUnit_Extensions_Database_TestCase { public function testComplexQuery() { $queryTable = $this->getConnection()->createQueryTable( 'myComplexQuery', 'SELECT complexQuery...' ); $expectedTable = $this->createFlatXmlDataSet("complexQueryAssertion.xml") ->getTable("myComplexQuery"); $this->assertTablesEqual($expectedTable, $queryTable); } } ?> ~~~ ### 對多個表的狀態作出斷言 當然可以一次性對多個表的狀態作出斷言,并將查詢數據集與基于文件的數據集進行比較。有兩種不同的方式來進行數據集斷言。 1. 可以從自數據庫連接建立數據庫數據集,并將其與基于文件的數據集進行比較。 ~~~ <?php class DataSetAssertionsTest extends PHPUnit_Extensions_Database_TestCase { public function testCreateDataSetAssertion() { $dataSet = $this->getConnection()->createDataSet(array('guestbook')); $expectedDataSet = $this->createFlatXmlDataSet('guestbook.xml'); $this->assertDataSetsEqual($expectedDataSet, $dataSet); } } ?> ~~~ 1. 也可以自行構造數據集: ~~~ <?php class DataSetAssertionsTest extends PHPUnit_Extensions_Database_TestCase { public function testManualDataSetAssertion() { $dataSet = new PHPUnit_Extensions_Database_DataSet_QueryDataSet(); $dataSet->addTable('guestbook', 'SELECT id, content, user FROM guestbook'); // additional tables $expectedDataSet = $this->createFlatXmlDataSet('guestbook.xml'); $this->assertDataSetsEqual($expectedDataSet, $dataSet); } } ?> ~~~
                  <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>

                              哎呀哎呀视频在线观看