【问题标题】:Jasmine Expected Spy to have been calledJasmine 预计 Spy 将被称为
【发布时间】:2016-03-31 04:04:36
【问题描述】:

这是我用打字稿写的角度工厂:

export class DataService { 

constructor () {
   this.setYear(2015);
 }
setYear = (year:number) => {
        this._selectedYear =year;
     }
}

这是我的测试文件。

 import {DataService } from ' ./sharedData.Service';
 export function main() {
    describe("DataService", () => {
        let service: DataService;
        beforeEach(function () {
            service = new DataService();
        });

        it("should initialize shared data service", () => {
            spyOn(service, "setYear");
            expect(service).toBeDefined();
            expect(service.setYear).toHaveBeenCalled(2015);
        });
    });
}

当我运行文件时,测试失败了

**Expected spy setSelectedCropYear to have been called.
Error: Expected spy setSelectedCropYear to have been called.**

我不知道出了什么问题。谁能告诉我测试有什么问题。

【问题讨论】:

    标签: angularjs typescript jasmine karma-jasmine


    【解决方案1】:

    问题是你设置间谍太晚了。当您将间谍挂载到服务上时,它已经被构建并且 setYear 已经被调用。但是您显然不能在构建服务之前将间谍安装在服务上。

    解决此问题的一种方法是监视 DataService.prototype.setYear。您可以确保它被服务实例调用并断言

    Dataservice.prototype.setYear.calls.mostRecent().object is service.

    【讨论】:

      【解决方案2】:

      这里修复的问题是更新的测试。

      import {DataService } from ' ./sharedData.Service';
       export function main() {
          describe("DataService", () => {
              let service: DataService;
              beforeEach(function () {
                  service = new DataService();
              });
      
              it("should initialize shared data service", () => {
                 var spy = spyOn(service, "setYear").and.callThrough();
                  expect(service).toBeDefined();
                  expect(spy);
                  expect(service._selectedYear).toEqual(2015);
              });
          });
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-09
        • 2021-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-08
        • 1970-01-01
        • 2021-02-12
        相关资源
        最近更新 更多