我偶然发现了一个我无法解决的问题。我试图监视子模块方法,但得到的错误是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未被声明为可配置