【发布时间】:2020-11-19 08:02:52
【问题描述】:
我需要为以下 A 类编写单元测试。我不想测试 methodA,而是设置一个虚拟方法:
const classB = require('classB');
function a() {
const b = classB();
b.methodA();
}
我尝试使用重新布线:
const classA = rewire('classA');
const classBMock = require('classB');
classBMock.prototype.methodA = function() {
}
classA.__set__('classB', classBMock);
classA.a();
有没有更好的方法来实现我的目标?
谢谢!
【问题讨论】:
-
如果您确实想在不更改/不更改的情况下测试代码,这就是您要走的路。或者,您可以通过允许依赖注入
function a(B = classB) { const b = new B(); ...}使您的代码更具单元测试性
标签: node.js unit-testing rewire