我有一個創建了PHP time()
方法未成年包裝函數在我的課懲戒的包裝時間函數
class MyClass
{
public function myFuncion($unixTimeStamp)
{
$pending = $this->isPending($unixTimeStamp)
// data manipulation
return $result
}
protected function isPending($unixTimeStamp)
{
if ($unixTimeStamp > $this->currentTime()) {
return true;
}
return false;
}
public function currentTime()
{
return time();
}
}
我想測試這個類中的公共職能myFunction()
但我在一個有點損失如何我可以嘲笑currentTime方法而不嘲笑SUT本身(MyClass)
這樣做的正確方法是什麼?我覺得使用單一方法(getCurrentTime)創建一個時間類,然後將它注入MyClass
,但是正確,過多,因爲我只在代碼中的一個地方檢查時間。
無論這是最好的方法嗎?
編輯:我正在考慮製作time
特質,因爲它looks like PHPUnit的可以模擬這一點。仍然不確定這是否過度使用單一的方法..
我還有什麼其他的選擇?
我決定創建一個類,它注入了部分嘲諷SUT,雖然你的建議幫了不同的問題,所以謝謝 – myol