0
我使用茉莉&噶单元测试角应用程序。这样角单元测试mockbackend SPEC HAS没什么要求
it('should match request object', inject([UserService, MockBackend], (userService: UserService, mockBackend) => {
mockBackend.connections.subscribe((connection: MockConnection) => {
expect(connection.request.method).toEqual(RequestMethod.Post);
expect(connection.request.json().getUserProfileRequest).toEqual({
userid: '1234',
});
connection.mockRespond(new Response(new ResponseOptions({
body: UsersMockData.GET_USER_PROFILE,
})));
});
usersService.getUserProfile(1234)
.subscribe(data => {
expect(data).toBe(UsersMockData.GET_USER_PROFILE);
});
}));
我的一切都写单元测试工作正常,并没有任何问题,现在,当我在两个单独的测试用例拆分测试用例我写的这些测试用例这样
it('Check userProfile request', inject([UserService, MockBackend], (userService: UserService, mockBackend) => {
mockBackend.connections.subscribe((connection: MockConnection) => {
expect(connection.request.method).toEqual(RequestMethod.Post);
expect(connection.request.json()getUserProfileRequest).toEqual({
userid: '1234',
});
});
}));
it('check return data from service', inject([UserService, MockBackend], (userService: UserService, mockBackend) => {
connection.mockRespond(new Response(new ResponseOptions({
body: UsersMockData.GET_USER_PROFILE,
})));
usersService.getUserProfile(1234)
.subscribe(data => {
expect(data).toBe(UsersMockData.GET_USER_PROFILE);
});
}));
代码两者都有希望的语句,但是当我执行测试用例,我看到一则消息SPEC具有这两个测试用例没有希望。我想知道为什么它显示spec没有预期。
因为如果你不同意getUserProfile后端不会被调用,如果你不提供从后端模拟响应有对你的订阅任何事件。 – jonrsharpe
@jonrsharpe我错过了一段代码,这将让模拟数据,更新的代码。你能更彻底地说你想说什么吗? – Dmehro
您的第二个测试会失败,因为甚至是模拟后端订阅之外的连接?你为什么试图把它分开? – jonrsharpe