[英]Angular unit test spyOn class from node_modules
我正在尝试创建一个间谍以确保从 node_modules 类调用函数例如在 obs.d.ts 中:
export declare module Obs {
class MyService {
func(params: Object): Promise<void>;
所以我想监视 func()
在我的测试中,我目前正在尝试:
import { Obs } from 'obs';
describe('CurrentService', () => {
let test: Obs.MyService;
let spy;
beforeEach(() => {
//test.func(); //this works
spy = spyOn(test, 'func'); // spy does not
TestBed.configureTestingModule({});
service = TestBed.get(CurrentService);
expect(spy).toHaveBeenCalled();
func 方法应该在 CurrentService 的构造函数中调用。
获取错误:“错误::找不到要监视 func() 的对象”
问题是无法识别 spy 中的 func 方法,即使 test.func() 有效(请参阅注释掉的部分代码)。
不确定这是否是导入问题。 我相信如果你真的创建了类(即 test = new Obs.MyService() ),间谍会起作用,但这将是无用的,因为在 CurrentService 中没有触及新的类实例。
谢谢您的帮助。
试试这个,虽然这可能也不起作用:
import * as ObsContainer from 'obs';
describe('CurrentService', () => {
let spy;
beforeEach(() => {
//test.func(); //this works
spy = spyOn(ObsContainer.MyService, 'func');
TestBed.configureTestingModule({});
service = TestBed.get(CurrentService);
expect(spy).toHaveBeenCalled();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.