2014-02-12 4 views
4

У меня есть Угловой SPA, который извлекает данные из узла. Поскольку проект узла полностью покрыт тестами, я хочу высмеять угловые HTTP-вызовы. (Я не хочу начинать обсуждение функциональных/дымовых тестов в целом, спасибо).AngularJS Protractor E2E Mocking

Что я хочу иметь, это s.th. например

Api = $injector.get('Api'); 
sinon.mock(Api, 'getSomethingFromServer').andRespondWith({foo: 'bar'}) 
assert(Api.getSomethingFromServer.wasCalledOnce); 

Но независимо от того, как я не могу найти хорошее решение. Я нашел несколько сообщений по этой же проблеме. Для example this one.

Поскольку транспортир меняется много и часто, я просто хочу спросить здесь, если кто-то нашел подходящее решение для издевательств по HTTP-запросам.

+0

Возможно, этот подход работает для вас: http://stackoverflow.com/a/24721712/379923 – doup

ответ

0

мы сейчас делаем, что использование http://apiary.io
Помимо того, что в состоянии «фиктивные» ваши ответы, вы получите хорошее описание API в качестве бонуса! Что мы делаем, мы запускаем приложение Angular против прокси-сервера, которое в зависимости от того, находимся ли мы в dev или в производстве, может перенаправлять либо на реальный сервер, либо на тот, который предоставляется пасекой.

+0

Похоже, что это замечательная часть программного обеспечения, по крайней мере, стоит заглянуть в нее на более глубокой глубине. Но я бы построил отдельный сервер API довольно неохотно. С моей точки зрения, это слишком много накладных расходов. Но спасибо за ссылку, хотя. –

0

Я согласен с предыдущим ответом. Ответ на частую смену Транспортира заключается в том, чтобы полностью отрегулировать бэкэнд от тестируемой системы, независимо от того, является ли это макетом, заглушкой или подделкой.

Сложность заключается в поддержании сильной согласованности с реальным бэкэнд, но не сказано, что это больше накладных расходов, чем попытка сохранить всегда меняющийся способ насмешек с угловым.

Смежные вопросы