- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вопрос для знающих PHPunit.
Тестируем 2 класса, при это нужно использовать 2 разных стаба. При запуске тестов по отдельности - все отлично. Когда запускаю все тесты на папку (даже с process-isolation):
Подскажите, как обходятся такие проблемы?
Пример: http://dl.dropbox.com/u/31119503/phpunit_isolation_test.zip
День добрый.
Ну я бы предположил, что можно:
1. Называть стабы по разному (что в общем логично)
2. Использовать нэймспейсы
3. Использовать моки
StarDust, приветствую.
1. Смысл стабов тогда несколько теряется.
2. Kак это поможет?
3. Моки используются для своих целей...
Ладно, может я чего не понимаю, расскажите, что вы со стабами пытаетесь делать, для меня стаб - по сути то же, что и мок. Но я больше .net
Да, действительно разница есть, но все-таки поясните, что вы с ними собираетесь делать...
Понял :) Суть какая...
Есть 3 класса - задача протестировать конкретный метод в каждом из них. Во всех методах дергается метод экземпляра другого четвертого класса, под названием.
Обусловимся:
1. для первого класса метод экземпляра 4го должен возвращать еденичку.
2. для второго - двойку.
3. для третьего - пусть отдает то что положено.
Структура теста получается следующая:
Пример актуален если TestClass1::testMethod(), TestClass2::testMethod() и TestClass3::testMethod() просто возвращают результат работы метода 4го класса.
Несмотря на то что передается параметр --process-isolation php ругается: cannot redeclare class "Class4"
Я пока смотрю, отпишусь, но, как я понял, стабы ничего не возвращают, а вот моки - возвращают.
Пруф: http://martinfowler.com/articles/mocksArentStubs.html
Что бы все не читать(хотя статья хорошая):
Stubs provide canned answers to calls made during the test, usually not responding at all to anything outside what's programmed in for the test. Stubs may also record information about calls, such as an email gateway stub that remembers the messages it 'sent', or maybe only how many messages it 'sent'.
Mocks are what we are talking about here: objects pre-programmed with expectations which form a specification of the calls they are expected to receive.
Фаулеру ну точно можно доверять :)
Я пока смотрю, отпишусь, но, как я понял, стабы ничего не возвращают, а вот моки - возвращают.
Наоборот. Стабы возвращают заранее определенные значения. Моки проверяют были ли выполнены нужные действия с ними (вызваны определённые методы с определёнными параметрами).
И то и другое хорошо к месту.. Проблема именно в phpunit и его изоляции, просто не могу нагуглить схожих проблем и есть подозрение что я что-то делаю не так :)