【发布时间】:2021-03-30 06:47:12
【问题描述】:
我想在我正在测试的函数中模拟一些函数。
我有一个类,它有几个从所谓的mainFunction 调用的静态私有函数。我想特别测试MyClass.functionD 的结果(由mainFunction 调用,这是一个私有方法),因此,我想模拟MyClass.functionA、MyClass.functionB 和MyClass.functionC 以返回默认结果,以便我的测试可以关注MyClass.fucntionD的结果。
export default class MyClass {
static mainFunction(paramA: string, paramB: number): boolean {
if (MyClass.functionA(paramA, paramB)) {
return false;
}
if (!MyClass.functionB(paramA, paramB)) {
return false;
}
if (MyClass.functionC(paramA, paramB)) {
return false;
}
// I need to focus on the result of this function (i.e. private) for my test
if (MyClass.functionD(paramA)) {
return false;
}
return true;
}
}
到目前为止,我已经尝试了 jest spyOn 和一些默认的模拟函数,但我迷路了,无法继续,因为我对 typescript / Javascript 真的很陌生。任何与我应该如何进行相关的提示/参考对我来说都足够了。 :) 谢谢。
【问题讨论】:
-
最好将 mainFunction 视为一个单元,根本不考虑私有方法。情况并非总是如此,但如果你不能证明嘲笑是正当的,那么他们可能根本不应该被嘲笑。
标签: javascript typescript unit-testing jestjs mocking