gpt4 book ai didi

angular - 命名空间 'jasmine' 没有导出成员 'SpyObj'

转载 作者:太空狗 更新时间:2023-10-29 19:32:27 30 4
gpt4 key购买 nike

我正在尝试为我的测试创建一个 spy 对象:

let spy: jasmine.SpyObj<GeneralService>;

不幸的是,我在运行 ng test 时遇到了这个错误:

Namespace 'jasmine' has no exported member 'SpyObj'

此外,WebStorm 将 SpyObj 标记为未解析的变量。

这是来 self 的 package.jsondevDependencies:

"devDependencies": {
"@angular/cli": "1.7.3",
"@types/jasmine": "2.5.36",
"@types/node": "7.0.27",
"jasmine": "~2.4.1",
"jasmine-core": "~2.4.1",
"karma": "^1.7.1",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-phantomjs-launcher": "^1.0.2",
"lodash": "4.16.2",
"ts-node": "1.3.0",
"tslint": "^3.15.1",
"typescript": "2.6.2"
}

更新:

我引用了 Angular 测试文档: https://angular.io/guide/testing

let masterService: MasterService;
let valueServiceSpy: jasmine.SpyObj<ValueService>;

beforeEach(() => {
const spy = jasmine.createSpyObj('ValueService', ['getValue']);

TestBed.configureTestingModule({
// Provide both the service-to-test and its (spy) dependency
providers: [
MasterService,
{ provide: ValueService, useValue: spy }
]
});
// Inject both the service-to-test and its (spy) dependency
masterService = TestBed.get(MasterService);
valueServiceSpy = TestBed.get(ValueService);
});

我最终将 spy 配置为 any:

 let spy: any;

最佳答案

您的 jasmine 版本不支持以后版本中引入的 SpyObj 类型。

尝试将 jasmine-core@types/jasminepackage.json 更新到最新的稳定版本或尝试使用 "jasmine-core": "2.8.0", @types/jasmine": "2.6.0" 应该可以正常工作,没有错误。

关于angular - 命名空间 'jasmine' 没有导出成员 'SpyObj',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52363713/

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