Допустим, в тестируемом классе есть несколько публичных методов:
class Sample {
function method1() {
return [1,2,3];
}
function method2($id) {
return (in_array($id, $this->method1()));
}
}
method2
зависит от результатов method1
.
Создаю тесты для первого метода, в котором гоняю его с разными наборами исходных значений. Потом берусь за тесты для второго метода, в котором эмулирую результаты работы первого:
$mock = $this->getMockBuilder(Sample::class)
->disableOriginalConstructor()
->setMethods(['method1'])
->getMock();
$mock->method('method1')->willReturn([1,2,3]);
$this->assertTrue($mock->method2(1));
А теперь вопрос:
Когда-нибудь в далеком будущем в результате рефакторинга я решаю, что результат работы первого метода должен выводиться в виде [1=>true,2=>true,3=>true]
. С тестами первого метода всё в порядке, они не пройдут и я сразу решу эту проблему. Но тесты второго получают эмулированные исходные данные, которые уже неактуальны.
Какая есть возможность/стратегия обезопасить себя от такой ситуации?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
имеется форма со случайным кол-ом групп элементов, в каждой группе 3 элемента:
Если мы введем такой код
При сборке проекта в VS 2015 происходит Ошибка LNK1104 не удается открыть файл "MSCOREElib"