【发布时间】:2017-11-14 14:12:36
【问题描述】:
如何对另一个函数中的函数进行单元测试?我无法更改源代码,所以我需要按原样进行测试。
我该怎么做?这是我的代码:
function B(){ console.log('function b'); }
function A(){
B();
}
茉莉花测试:
it('should check function B in function A was called', function () {
spyOn(window, 'B');
A();
expect(B).toHaveBeenCalled();
});
【问题讨论】:
-
我想添加一个答案,但我认为这主要是意见。对我来说,这是一种代码味道。单元测试独立于程序的其余部分测试单个单元(模块、函数、类)。本质上,他们测试给定一个输入,你得到一个输出。我建议移动嵌套调用并改用组合和经过测试的组合工具。类似于
pipe。pipe(a,b)(inputToA)将为您提供 3 个经过全面测试的函数,没有模拟或间谍。这不是许多人持有的观点,因此请持保留态度。
标签: javascript unit-testing jasmine