2
我測試使用PHPUnit的方法,我有以下情形:測試調用該方法有一些參數,等等
- 法「的setParameter」被稱爲次
- 方法的未知量'setParameter'被調用不同類型的參數
- 各種參數之間的方法'setParameter'務必用一組參數調用。
我試着做這種方式:
$mandatoryParameters = array('param1', 'param2', 'param3');
foreach ($mandatoryParameters as $parameter) {
$class->expects($this->once())
->method('setParameter')
->with($parameter);
}
不幸的是,測試方法之前被調用,這些參數它被稱爲與其它參數也因失敗。我得到的錯誤是:
Parameter 0 for invocation Namespace\Class::setParameter('random_param', 'random_value')
does not match expected value.
Failed asserting that two strings are equal.
如果我不知道該功能會究竟有多少次被稱爲有我無法檢查它是否會在其他調用中與這些參數一起調用? – spdionis
你不需要知道函數會被調用多少次,但是你確實需要知道它會在哪一點。這對每次測試都應該是一樣的,所以你需要確定這一點。雖然進行測試,但您還應該確切知道該函數將被調用的次數,因爲您應該可以控制整個測試系統,並且可以向其提供能夠爲您提供具有一致參數的已知數量的調用的數據。 – Schleis