【发布时间】:2020-10-04 16:44:51
【问题描述】:
我正在测试这个在提交按钮点击时触发的方法
addItem(): void{
console.log("Adding Item")
this.newItem.id= "100"
this.newItem.name ="Shampoo"
}
我想在单击提交按钮时从单元测试中触发此方法。但是我认为它不会触发,因为预期值 '100' 和 'Shampoo' 是 ''。所以断言失败
单元测试类
let store: MockStore<AppState>;
let fixture :ComponentFixture<AppComponent>;
let component: AppComponent;
const initialState = {
shopping:{
list: [],
loading: false,
error: undefined
},
loggedIn: false };
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule ,
ReactiveFormsModule,
FormsModule
],
providers:[
provideMockStore({ initialState }),
],
declarations: [
AppComponent
],
}).compileComponents().then(()=>{
fixture = TestBed.createComponent(AppComponent);
component = fixture.componentInstance;
});
}));
it('should create the app', () => {
expect(component).toBeTruthy();
});
fit('should add item on button click', () => {
fixture.detectChanges();
expect(component.newItem.id).toEqual('');
expect(component.newItem.name).toEqual('');
//debugger;
const btn:DebugElement =fixture.debugElement.query(By.css('#addBtn'))
btn.triggerEventHandler('ngSubmit',null);
expect(component.newItem.id).toEqual('100');
expect(component.newItem.name).toEqual('Shampoo');
});
});
这是我的 html 类
<form (ngSubmit)="addItem()">
<input type="text" [(ngModel)]="newItem.name" placeholder="Item" name="itemName"/>
<button type="submit" id="addBtn">+Add</button>
</form>
我做错了什么
【问题讨论】:
标签: angular unit-testing