2014-02-19 51 views
0

我是新來的測試,想知道是否有可能用PHPUnit定義對象參數。我試圖在模擬上定義屬性,並忽略它。是否可以在PHPUnit中定義對象參數?

$testMock = $this->getMock('ClassToMock'); 
$testMock->attribute = "something"; 

通過方法訪問屬性只是更好的做法嗎?謝謝

回答

0

你不能通過mock API注入屬性值。你可以通過反射機制來做到這一點。

$testMock = $this->getMock('ClassToMock'); 
$reflection = new ReflectionClass($testMock); 
$reflection_property = $reflection->getProperty('attribute'); 
$reflection_property->setValue($testMock, 'something'); 

如果你需要那個「黑客」,可能你應該重構你的代碼。

+0

太棒了,謝謝。有人認爲這是代碼氣味,但認爲它更好地問。 – mrberggg

相關問題