我正在尝试检查切换布尔值时是否显示下拉列表。 布尔值是组件
的输入@Component({
selector: 'dropdown',
directives: [NgClass],
template: `
<div [ngClass]="{open: open}">
</div>
`,
})
export class DropdownComponent {
@Input('open') open: boolean = false;
}
和测试
it('should open', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb.createAsync(DropdownComponent)
.then(fixture => {
let el = fixture.nativeElement;
let comp: DropdownComponent = fixture.componentInstance;
expect(el.className).toEqual('');
comp.open = true;
fixture.detectChanges();
expect(el.className).toEqual('open')
});
}));
我猜测当布尔值是@Input?
时,必须要做一些不同的事情答案 0 :(得分:4)
您正在session.createCriteria(Person.class)
.add(Restrictions.eq("id", personId))
.uniqueResult();
上设置课程open
,但需要检查<div [ngClass]="{open: open}">
。那不一样。
这样的事情应该做你想做的事情
DropdownComponent
或
var div = fixture.nativeElement.querySelector('div');
expect(div.className).toEqual('open');
另请参阅How do I trigger a ngModel model update in an Angular 2 unit test?示例。