Javascript 使用Karma和Jasmin的Angular2单元测试SpyOn
我在设置测试套件时遇到了一些奇怪的问题 模板:Javascript 使用Karma和Jasmin的Angular2单元测试SpyOn,javascript,angular,jasmine,spyon,Javascript,Angular,Jasmine,Spyon,我在设置测试套件时遇到了一些奇怪的问题 模板: <a href="#" (click)="blop($event)"></a> 测试: describe('Home Component : ', () => { var builder; var app; beforeEach(inject([HomeComponent, TestComponentBuilder], (app, tcb) => { builder = tcb;
<a href="#" (click)="blop($event)"></a>
测试:
describe('Home Component : ', () => {
var builder;
var app;
beforeEach(inject([HomeComponent, TestComponentBuilder], (app, tcb) => {
builder = tcb;
app = app;
}));
it('should return test = true after click...', async(() => {
builder.createAsync(HomeComponent).then((fixture: ComponentFixture<HomeComponent>) => {
spyOn(fixture.componentInstance, 'blop');
fixture.detectChanges();
var compiled = fixture.debugElement.nativeElement;
compiled.querySelector('a').click();
expect(fixture.componentInstance.test).toBe(true);
expect(fixture.componentInstance.blop).toHaveBeenCalled();
});
}));
});
description('Home Component:',()=>{
var生成器;
var-app;
每次之前(注入([HomeComponent,TestComponentBuilder],(应用程序,tcb)=>{
builder=tcb;
app=app;
}));
它('单击…'后应返回test=true',异步(()=>{
createAsync(HomeComponent).then((fixture:ComponentFixture)=>{
spyOn(fixture.componentInstance,'blop');
fixture.detectChanges();
编译变量=fixture.debugElement.nativeElement;
compiled.querySelector('a')。单击();
expect(fixture.componentInstance.test).toBe(true);
expect(fixture.componentInstance.blop).toHaveBeenCalled();
});
}));
});
我在上得到一个错误输出:预期false为true
但是,如果我评论间谍和最后一个预期,它是有效的
你知道我做错了什么吗
谢谢
M您应该为spy返回一个值。间谍只会开始监视
SpyOn(fixture.componentInstance,'blop')和.returnValue(true);
能否提供有关家庭组件的更多详细信息?谢谢
describe('Home Component : ', () => {
var builder;
var app;
beforeEach(inject([HomeComponent, TestComponentBuilder], (app, tcb) => {
builder = tcb;
app = app;
}));
it('should return test = true after click...', async(() => {
builder.createAsync(HomeComponent).then((fixture: ComponentFixture<HomeComponent>) => {
spyOn(fixture.componentInstance, 'blop');
fixture.detectChanges();
var compiled = fixture.debugElement.nativeElement;
compiled.querySelector('a').click();
expect(fixture.componentInstance.test).toBe(true);
expect(fixture.componentInstance.blop).toHaveBeenCalled();
});
}));
});