2010-10-15 96 views
0

我工作的PHPUnit測試,到目前爲止,一切都很好。有一個問題,但是,它是以下設置。理想情況下,我想選擇序列中的下一個值(postgreSQL)並將其傳遞給函數,以便我可以根據從正在測試的類(數據庫中的新行)返回的數組驗證它。PHPUnit的數據提供

的問題是,從數據提供程序返回的陣列之前(如果我回應的話)是正確的值,但在測試過程中談到通過爲空白。是否有一系列特定的步驟在我所期望的方面缺失,或者我必須以不同的方式做到這一點?

/** 
* @dataProvider testSignupProvider 
*/ 
public function testSignup($a, $b, $c) 
{ 
    ...stuff is done with $a,$b,$c 
} 


public function testSignupProvider() 
{ 
    $uid = fetchOne(X("SELECT currval('users_id_seq')")); 

    return array(
     array(false, array(), $error4), 
     array(
      'email'=>'[email protected]', 
      'password'=>'youaintgonnagetit', 
      $error3 
     ), 
     array(
      array('id'=>$uid,'email'=>'[email protected]','username'=>'Guest'), 
      array('email'=>'[email protected]','password'=>'youaintgonnagetit'), 
      null 
     ) 
    ); 
} 

輸出:

Array 
(
- [id] => 
+ [id] => 2 
    [email] => [email protected] 
    [username] => Guest 
) 
+0

只是好奇,你對替代數據(序列)執行什麼樣的測試? – zerkms 2010-10-15 01:46:43

+0

順便說一句,如果你將其更改爲另一個功能invokation,即:'$ UID = microtime中(真);' – zerkms 2010-10-15 01:49:26

+0

我執行等於檢查($這個 - >的assertEquals($ A,$數據);),其中一個是使用$ uid值的數組。 ?用microtime中 – methodin 2010-10-15 01:51:51

回答

0

我已經解決此通過分配的「id」的數組元素爲「@id」和在功能測試I拉電流id的序列中在該得到時間。

仍然會接受一個答案給任何人,爲什麼會出現這種行爲,但希望這將幫助其他人有這個問題,誰可以告訴我。