javascript - Angular - 如何在单元测试中模拟外部函数?
问题描述
我正在尝试为依赖于导入函数的函数编写角度单元测试 - 如何编写模拟导入函数结果的单元测试?我的功能是:
import { DependentMethod } from './dependentMethod';
export function doSomething() {
const dependentResults = DependentMethod(); // DependentMethod makes an http call and returns the result
return dependentResults;
}
在这种情况下,我想测试doSomething
并模拟该DependentMethod
功能。当我之前尝试模拟一些东西时,我已经spy
在类方法上使用过,但我不确定在这种情况下如何处理它。任何帮助将不胜感激!
解决方案
您可以尝试以下方法,
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);
});
推荐阅读
- r - R,矩阵:逐行减去最大值,去除 NA
- owl - 为什么 OWL-DL 推理如此高效?
- python - 带记录的 BigQuery python 插入 (\w client.insert_rows)
- vue.js - 在 Vue 中,为什么当 if 和 for 在标签上时会发生键重复?
- javascript - 如何从 expressjs 服务器发送 xhttp 请求?
- angular - 访问复杂 JSON angular6 中的属性
- python-3.x - 通过将每个下一个列表与前一个列表进行比较并存储唯一列表来迭代 Python 中的列表列表
- java - ditJava 更改 graphics2D 的 dpi
- python - 是否有用于不可消费的可迭代对象的 python 类型注释?
- javascript - Web Share API - 从服务器共享文件