gpt4 book ai didi

javascript - 使用 Karma 和 Jasmin 进行 Angular2 单元测试 SpyOn

转载 作者:行者123 更新时间:2023-11-27 22:48:04 25 4
gpt4 key购买 nike

我设置的测试套件遇到一些奇怪的问题。

模板:

<a href="#" (click)="blop($event)"></a>

主页组件:

export class HomeComponent {
public test: boolean;

public constructor () {
this.test = false;
}

public blop($event) {
this.test = 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();
});
}));
});

我收到错误输出:预期 false 为 true。

但是,如果我评论 spy 和最后一个期望,它就会起作用。

你知道我做错了什么吗?

谢谢

中号

最佳答案

您应该为 spy 返回一个值。 SpyOn 才开始监视。

SpyOn(fixture.componentInstance, 'blop').and.returnValue(true);

关于javascript - 使用 Karma 和 Jasmin 进行 Angular2 单元测试 SpyOn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38263351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com