1
很長時間的潛伏者 - 第一次海報。我剛開始使用PHP,並正在爲一些遺留代碼編寫一些測試。我在這裏有一門課,有特點。我如何測試該類在方法中使用特徵方法的方法?PHP單元測試類w /性狀
trait Cooltrait
{
public function extractMethod($z){
return $z[0];
}
}
class Awesome
{
using Cooltrait
public function handlesomething($x, $y){
$var1 = $this->extractMethod($x)
if(!is_null($var1)){
return true;
}
return false;
}
}
我需要測試$ var1是否爲null或不在類中,但我使用此特徵的方法。任何人都遇到過如何最好地模擬/存根一個類的特點,以測試hadlesomething函數在真棒類? (編輯澄清問題)。
感謝羅比;我想測試Awesome類中的東西;我想將extractMethod結果的值從特徵更改爲特定值。任何想法如何可以嘲笑,而在真棒類測試handlesomething? 我沒有深入瞭解extractMethod在特徵中所做的全部細節,但假設它不僅僅返回數組的第一個值 – rl279
如果您想模擬它,您可以部分模擬Awesome類,例如, '$ awesome = $ this-> getMockBuilder('Awesome') - > setMethods(array('extractMethod')) - > getMock();'then'$ awesome-> expect($ this-> once()) - >方法('extractMethod') - > willReturn('foobar');' - 然後用你的測試,例如'$ this-> assertTrue($ awesome-> handlesomething('whatever','...');' –
這裏的關鍵在於特性已經在運行時應用到了Awesome,因此部分模擬與它相同如果真棒字面上擁有extractMethod方法 –