从测试中看不到变量更改-Angular2 +

时间:2018-08-03 08:45:45

标签: javascript angular typescript

我有一个变量,应根据我是否成功登录来更改其值。但是,从我的测试中,我看不到此更改,只是返回了“未定义”。

此变量会在我实际使用该应用程序时发生更改,当使用明显错误的详细信息登录时显示“用户名或密码不正确”。

有什么原因使我看不到更新后的errorMessage

更新 我在函数的整个流程中放置了一堆console.log消息,看来它可以达到** auth> login()文件中的const主体**,但似乎未返回任何内容

1 个答案:

答案 0 :(得分:0)

您可以简单地模拟login()服务并从中返回错误。同样,也不需要调用真实的login(),因为您只测试了在组件文件中设置的errorMessage

it('should call login when passed valid form with incorrect credentials but return error', () => {
    // spy on login() and throw error from there
    spyOn(component.authService, 'login').and.throwError('Unable to get Token'); 
    component.onSubmit(validFormBadCreds);
    expect(component.errorMessage).toEqual('Either username or password were incorrect');
}