如何使用Karma/Jasmine为Angular 2反应形式编写单元测试用例?
我在Angular 2中开发了一个简单的反应式表单,其中包括如何使用Karma/Jasmine为Angular 2反应形式编写单元测试用例?,angular,karma-jasmine,angular-reactive-forms,Angular,Karma Jasmine,Angular Reactive Forms,我在Angular 2中开发了一个简单的反应式表单,其中包括用户名、密码和登录按钮。此处按钮默认禁用最多获取电子邮件和密码值。在这里,我试图通过使用karma/Jasmine为按钮启用编写一个测试用例,但是我对这个测试框架还不熟悉,我已经编写了正常的有效和无效的东西,但是没有清晰地编写这个特定的东西。如果有人知道这一点,你能帮我快速开始吗 这是我的反应形式: 签到表 {{useridMessage}} {{passwordMessage}} 登录 测试用例以检查按钮是否已禁用 it('f
用户名
、密码
和登录
按钮。此处按钮默认禁用最多获取电子邮件和密码值。在这里,我试图通过使用karma/Jasmine
为按钮启用编写一个测试用例,但是我对这个测试框架还不熟悉,我已经编写了正常的有效和无效的东西,但是没有清晰地编写这个特定的东西。如果有人知道这一点,你能帮我快速开始吗
这是我的反应形式:
签到表
{{useridMessage}}
{{passwordMessage}}
登录
测试用例以检查按钮是否已禁用
it('form should be invalid', async(() => {
component.authForm.controls['userid'].setValue('');
component.authForm.controls['password'].setValue('');
expect(component.authForm.valid).toBeFalsy();
// update view, once the values are entered
fixture.detectChanges();
let btn = fixture.debugElement.query(By.css('carbon-button')); // fetch button element
expect(btn.nativeElement.disabled).toBeTruthy(); // check if it is disabled
}));
表单验证的测试用例 组成部分:
public buildFrom() {
this.loginForm = this.fb.group({
'email': [undefined, Validators.required],
'password': [undefined, Validators.required]
});
}
测试用例:
function setFormValues(fromData) {
component.loginFrom.control['email].setValue(fromData.email);
component.loginFrom.control['password].setValue(fromData.password);
}
it('should have form valid", () => {
component.buildFrom();
const data = {
email: 'xyz@abc.com',
password: 'xyz'
};
setFormValues(data);
expect(component.loginFrom.valid).toBeTruthy();
})
it('should have password', ()=> {
component.buildFrom();
const data = {
email: 'abc@abc.com',
password: 'abc'
};
setFormValues(data);
expect(component.loginFrom.get('password').value.length).toBeGreaterThan(0);
})
你想写一个测试用例来检查按钮是否被禁用吗?@AmitChigadani是的,没错。如果我们给两个字段输入数据,按钮应该启用,否则按钮将禁用。感谢您的回答,您编写的这个测试用例应该是通过的,因为按钮将处于禁用状态。但这是失败的错误是“预期未定义为真实”