AngularJS Protractor E2E Mocking

2019-04-09 16:21发布

I have an Angular SPA retrieving its data from a node backend. Since the node project is fully covered with tests I want to mock the Angular HTTP calls. (I do not want to start a discussion about functional-/smoke-tests in general, thanks).

What I'd like to have is s.th. like this

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

But no matter how I can't find a nice solution. I found several posts regarding the same issue. For example this one.

Since protractor is changing a lot and frequently, I just like to ask here on SO if anyone found a proper solution for mocking the HTTP requests.

2条回答
爷、活的狠高调
2楼-- · 2019-04-09 17:08

we are currently doing that using http://apiary.io
Besides being able to "mock" your responses, you get a nice API description as a bonus! What we do is we run the Angular app against a proxy, which depending on whether we are in dev or in production can forward either to real backend or the one provided by apiary.

查看更多
ら.Afraid
3楼-- · 2019-04-09 17:19

I agree with previous answer. An answer to frequent change of Protractor is to completly decorrelate the backend from the system under test, no matter if it is mock, stub, or fake.

The difficulty is to maintain a strong coherence with the real backend, but it is not said that it is more overhead than trying to maintain an always changing way of mocking with angular.

查看更多
登录 后发表回答