У меня возникла проблема с классом, который возвращает непредсказуемые значения и модульное тестирование метода, который вызывает эти функции. Поэтому я собираюсь изменить возврат метода.PHPUnit Остановка последовательных вызовов
Я не могу издеваться над этим методом, потому что я не могу создать экземпляр. Вот пример:
// Class called MyClass
public function doSomething(){
$foo = new Foo();
$bar = $foo->getSomethingUnpredictable();
// Doing something with $bar and saves the result in $foobar.
// The result is predictable if I know what $foo is.
return $forbar;
}
// The test class
public function testDoSomething{
$myClass = new MyClass();
when("Foo::getSomethingUnpredictable()")->thenReturns("Foo");
// Foo::testDoSomething is now predictable and I am able to create a assertEquals
$this->assertEquals("fOO", $this->doSomething());
}
Я мог бы проверить, что Foo :: testDoSomething возвращается в тестовом модуле и так вычислить результат, но чем testDoSomething имеет только несколько отличия от DoSomething. Я также не могу проверить, что происходит с другими значениями.
doSomething не может иметь никаких параметров, поскольку используются varargs (поэтому я не могу добавить оптимальный параметр).