Форум → Программирование → PHP для идиотов → phpUnit & mock objects
phpUnit & mock objects
-
27 января 2012 г. 9:22, спустя 11 минут 52 секунды
+BDD BehatСпустя 129 сек.и что вы думаете про http://codeception.com/ -
-
27 января 2012 г. 16:54, спустя 6 часов 57 минут 42 секунды
Оки, я так посмотрел, вы меня тут упомянули, а я вот взял, и появился )
Суть моков в юнит-тестировании в том, что при тестировании кода важно знать какая часть его работает, какая нет. А значит нужно классы и методы тестировать в изоляции. Моки и стабы существуют в том же пыхюните, как раз для того, чтобы эмулировать эту изоляцию. При тестировании метода, мы тестируем конкретно один метод, а если он что-то дополнительно вызывает, всё это мы заменяем на заглушки.
Суть BDD: если у вас есть потребность описывать спецификации сайта, то очень просто превратить их в тест посредством BDD и бихет. Описание поведения на человеческом языке с целью показать заказчику это то, зачем оно всё нужно. Если же вы не хотите писать Войну и Мир о своем сайте. Если вы просто хотите быстро написать тесты - Codeception как раз для вас. Плюс в нем есть, как и юниты, так и приемочные, так и функциональные. -
-
28 января 2012 г. 1:34, спустя 8 часов 36 минут 8 секунд
ок, вот ток как быть с приват методами? В пыюните бывает чтё желаемый результат может быть достигнут через анальное отверстие… есть может бест практисы?Спустя 85 сек.Codeception- однозначно понравился, потому как удобно очень.. -
28 января 2012 г. 4:18, спустя 2 часа 43 минуты 44 секунды
Приватные методы исходя из бест практисов сами по себе тестироваться не должны. Объясню: важно тестировать не просто каждый метод, а те методы, с которыми может происходить внешнее взаимодействие. То есть класс стабильный, когда все публичные методы его протестирвоаны. Как он там действует внутри себя - всем пофиг. Он может менять приватные методы, свойства. Главное, что апи его методов (контракты) остаются стабильными.
Если же речь идет о том как "замокать" класс с приватным методом, то скорее всего никак. Лучше делать протектед-методы.
Да, со статическими методами - тоже фигня. Их мокать тоже не получится. -
28 января 2012 г. 4:31, спустя 12 минут 59 секунд
Если же речь идет о том как "замокать" класс с приватным методом, то скорее всего никак
Можно мокать "обратными рефлекторами" -
28 января 2012 г. 4:40, спустя 8 минут 55 секунд
"обратными рефлекторами" +1Спустя 89 сек.но иногда я не понимаю зачем вообще мокать то что работает с внешними хренями, типо дб или апи… если правельно разделять части приложения- можно и без моков, тем более что у них проблемы с гетерами и сетерами… хзСпустя 48 сек.***…то что !работает…. -
28 января 2012 г. 10:49, спустя 6 часов 9 минут 31 секунду
Можно мокать "обратными рефлекторами"
А можно уточнить что имеется ввиду? А то рефлексией можно только доступ к методу получить, а вот доопределить его, наверное, никак. -
28 января 2012 г. 11:08, спустя 18 минут 26 секунд
davert, честно говоря я не разбирался, но вроде runkit может сделать что надоСпустя 140 сек.runkit_method_redefine но это экспериментальныйСпустя 140 сек.davert, а вообще, вы правы, скрытые части нужно тестить только согласно политике, а не всякий раз… -
28 января 2012 г. 12:31, спустя 1 час 22 минуты 50 секунд
Ну runkit может всё, факт )
Но я пока делаю то, что предлагает сам РНР без надстроек. Но насчет Runkit, спасибо. Возможно внедрю его поддержку в Codeception ) -
18 августа 2012 г. 12:22, спустя 202 дня 22 часа 51 минуту
так что этот вариант автоматически отметается )
Пожалуйста, авторизуйтесь, чтобы написать комментарий!