2014-04-04 44 views
1

我有一個方法查詢數據庫,並返回一個數組結果或如果沒有結果爲false。PHPSpec如何問一個方法是否返回這個或那

我需要PHPSpec在這種情況下做的是測試它是返回一個數組還是false,但我不能解決如何做到這一點。

或者我需要模擬數據庫查詢並將其分離出我的方法嗎?

回答

4

你沒有表現出任何代碼,所以我們可以一起工作,但如果當前的匹配不爲你工作,你可以創建新的:

function it_should_return_array_or_false() 
{ 
    $this->getOptions()->shouldBeArrayOrFalse(); 
} 

public function getMatchers() 
{ 
    return [ 
     'beArrayOrFalse' => function($subject, $value) { 
      return is_array($value) || $value === false; 
     }, 
    ]; 
} 
+0

AHHHHHH!您一舉澄清了內聯匹配器的工作原理。棒極了。對不起,我應該包含我的代碼!非常感謝! – alexleonard

+0

我不得不稍微修改一下,否則失敗。我需要將該方法分配給一個變量,並將其傳遞給我的內聯匹配器。這就是我所做的:http://laravel.io/bin/9QrR - 是否有另一種方法來做到這一點? – alexleonard

相關問題