Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Karma和Jasmin的Angular2单元测试SpyOn_Javascript_Angular_Jasmine_Spyon - Fatal编程技术网

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();
    });
  }));
});