gpt4 book ai didi

angularjs - Jasmine Expected Spy 被称为

转载 作者:搜寻专家 更新时间:2023-10-30 20:37:55 25 4
gpt4 key购买 nike

这是我用 typescript 写的 angular.factory :

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.**

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

最佳答案

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

解决此问题的一种方法是监视 DataService.prototype.setYear。您可以确保它是由断言

的服务实例调用的

Dataservice.prototype.setYear.calls.mostRecent().object 是服务。

关于angularjs - Jasmine Expected Spy 被称为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34457386/

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