子模块上的SpyOn方法在jasmine中没有返回任何间谍



我偶然发现了一个我无法解决的问题。我试图监视子模块方法,但得到的错误是moduleSpy不是具有以下错误消息的间谍。模块是一个npm包。

Error: <toHaveBeenCalled> : Expected a spy, but got undefined.

import * as module from 'package';
import { TOKEN } from 'injectionToken.ts'
describe('ExampleComponent', () => {
let component: ExampleComponent;
let fixture: ComponentFixture<ExampleComponent>;
let moduleSpy;
beforeEach(async(() => {
moduleSpy = spyOn(module.sub, 'subModuleMethod');
TestBed.configureTestingModule({
declarations [ExampleComponent],
providers: [
{ provide: TOKEN, useValue: module }
]
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ExampleComponent);
component = fixture.componentInstance;
});
it('test specific function call', () => {
// press button to test the sub module method
expect(moduleSpy.subModuleMethod).toHaveBeenCalled();
});
})

有人知道为什么间谍没有被认出来吗?

你在早期版本的Angular/TypeScript上工作过,但没有在以后的版本上工作过。

这是一个很长的线程解释它:https://github.com/jasmine/jasmine/issues/1414

以下是一些解决方案:webpack 4模块可以配置为允许茉莉监视他们的成员吗?

github线程有一些解决方案,但这些解决方案都不适合我。

我最喜欢的解决方案是这个:

错误:supportsScrollBehavior未被声明为可配置

相关内容

  • 没有找到相关文章

最新更新