关于在Angular2中模拟Formbuilder,我有两个问题。
1)如何在规范中模拟formBuilder?我们可以使用任何给定的模拟吗?例如,我想更新规范中的表单值,然后进行测试以查看该表单是否仍然有效-或测试组件中更新formbuilder组的方法的功能,或者确定是否有一个formbuilder组已验证。
2)鉴于fb是规范中的Formbuilder的DI注入(inject),我该如何处理以下错误?null is not an object (evaluating 'this.fb.group')
当组件如下时:
export class LoginComponent implements OnInit {
constructor( private fb: FormBuilder ) {}
ngOnInit() {
this.loginForm = this.fb.group({
'email': this.user.email,
'password': this.user.password
});
}
}
最佳答案
如果您使用的是Angular2的最新版本,并且想使用其测试平台,则这里是一个有效的规范。
describe('Login Component', () => {
let comp: LoginComponent;
let fixture: ComponentFixture<LoginComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [LoginComponent],
providers: [
FormBuilder
]
}).compileComponents()
.then(() => {
fixture = TestBed.createComponent(LoginComponent);
comp = fixture.componentInstance;
});
}));
it('user should update from form changes', fakeAsync(() => {
const testUser = {
email: '[email protected]',
password: '12345'
};
comp.loginForm.controls['email'].setValue(testUser.email);
comp.loginForm.controls['password'].setValue(testUser.password);
expect(comp.user).toEqual(testUser);
}));
});
关于Angular2 FormBuilder单元测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39712150/