我正在尝试为依赖于导入函数的函数编写角度单元测试 - 如何编写模拟导入函数结果的单元测试?我的功能是:
import { DependentMethod } from './dependentMethod';
export function doSomething() {
const dependentResults = DependentMethod(); // DependentMethod makes an http call and returns the result
return dependentResults;
}
在这种情况下,我想测试
doSomething
并模拟DependentMethod
功能。当我以前尝试模拟东西时,我在类方法上使用了 spy
但我不确定在这种情况下如何处理它。任何帮助将不胜感激!
在您的
component.spec.ts
文件中导入整个库:
import * as dependentMethodLibrary from './dependentMethodLibrary';
在那之后,在你的
describe
或it
块中,模拟库的功能:
spyOn(dependentMethodLibrary, 'DependentMethod').and.returnValue({});
您可以尝试以下操作,
import { dependent } from './dependentLibrary';
describe('yourCoponent', () => {
let component: yourComponent;
let service : dependentService;
beforeEach(() => {
service = new dependent(null); // if your service has further dependency
component = new yourComponent(service);
});
it('should perform test', () => {
// Arrange part -->
spyOn(service, 'dependentMethod').and.callFake(() => {
return Observable.from([ [1,2,3] ]); // return your mock data
});
//Act part
component.ngOnInit();
//Assert
expect(component.testable.action).toBe(value);
});