PHP для идиотов
→ phpUnit & mock objects • 29 января 2012 г. 0:31
PHP для идиотов
→ phpUnit & mock objects • 28 января 2012 г. 22:49
PHP для идиотов
→ phpUnit & mock objects • 28 января 2012 г. 16:18
Приватные методы исходя из бест практисов сами по себе тестироваться не должны. Объясню: важно тестировать не просто каждый метод, а те методы, с которыми может происходить внешнее взаимодействие. То есть класс стабильный, когда все публичные методы его протестирвоаны. Как он там действует внутри...
Приватные методы исходя из бест практисов сами по себе тестироваться не должны. Объясню: важно тестировать не просто каждый метод, а те методы, с которыми может происходить внешнее взаимодействие. То есть класс стабильный, когда все публичные методы его протестирвоаны. Как он там действует внутри себя - всем пофиг. Он может менять приватные методы, свойства. Главное, что апи его методов (контракты) остаются стабильными.
Если же речь идет о том как "замокать" класс с приватным методом, то скорее всего никак. Лучше делать протектед-методы.
Да, со статическими методами - тоже фигня. Их мокать тоже не получится.
PHP для идиотов
→ phpUnit & mock objects • 28 января 2012 г. 4:54
Оки, я так посмотрел, вы меня тут упомянули, а я вот взял, и появился )Суть моков в юнит-тестировании в том, что при тестировании кода важно знать какая часть его работает, какая нет. А значит нужно классы и методы тестировать в изоляции. Моки и стабы существуют в том же пыхюните, как раз для тог...
Оки, я так посмотрел, вы меня тут упомянули, а я вот взял, и появился )
Суть моков в юнит-тестировании в том, что при тестировании кода важно знать какая часть его работает, какая нет. А значит нужно классы и методы тестировать в изоляции. Моки и стабы существуют в том же пыхюните, как раз для того, чтобы эмулировать эту изоляцию. При тестировании метода, мы тестируем конкретно один метод, а если он что-то дополнительно вызывает, всё это мы заменяем на заглушки.
Суть BDD: если у вас есть потребность описывать спецификации сайта, то очень просто превратить их в тест посредством BDD и бихет. Описание поведения на человеческом языке с целью показать заказчику это то, зачем оно всё нужно. Если же вы не хотите писать Войну и Мир о своем сайте. Если вы просто хотите быстро написать тесты - Codeception как раз для вас. Плюс в нем есть, как и юниты, так и приемочные, так и функциональные.