2014-03-18 30 views
2

我真的堅持接受這個測試。Codeception seeInDatabase()不適用於我

我的代碼是這樣的

$I->click('Submit'); 
$I->see('Client Added'); 
$I->seeInDatabase('customers',[ 
    'afm'=>'111' 
    ]); 

一切經過,直到與 「seeInDatabase」 的路線。日誌給我這個錯誤「ALERT:找不到匹配的記錄失敗斷言'0'大於0」。

我檢查了數據庫設置

modules: 
    config: 
     Db: 
      dsn: 'mysql:host=localhost;dbname=dbtesting' 
      user: 'test' 
      password: 'test' 
      dump: app/tests/_data/dump.sql 
      populate: true 
      cleanup: true 

似乎沒什麼問題。我再次用seeInDatabase()檢查一行,我知道它在那裏,是的,它的工作很好。 (不是PDO問題或類似的東西,然後)

所以我不得不在我的控制器創建的形式是「POST」後,只是爲了確保

public function store(){ 

\Customer::create(['afm'=>111]); 

return \Redirect::route('customers.index')->with('successMsg',Client Added'); 
} 

同樣,我無法驗證此新排。任何想法如何解決這個問題?

//// UPDATE /////

當我用香草PDO代碼代替雄辯插入,一切正常。如何解決這個問題? (全信息here

回答

0

根據文檔

清理:真正的 - 所有的數據庫查詢將在交易,這將在 測試結束時回滾運行。

所以一般這樣的事情應該工作(functional.suite.yml)

class_name: TestGuy 
modules: 
    enabled: [Filesystem, TestHelper, Laravel4, Db] 
    config: 
     Laravel4: 
      cleanup:false 

但在我的情況下,並沒有解決任何問題。所以我強迫它通過改變線路59 /Module/Laravel4.php

cleanup = true 

TO 

cleanup = false 

最後,我雖然它不是理想的,因爲作曲家的更新此問題的修復程序。

6

我剛剛遇到同樣的問題,顯然我們有Laravel4模塊中的「seeRecord」助手方法來檢查記錄。奇蹟般有效。

$I->seeRecord('customers', ['afm' => '111']); 
+0

甜 - 這讓我立即離開,看起來比接受的答案更加整齊。 – alexleonard