rateTermCalc() {
if (this.termYearsDiff(this.remainingDays, 1, 182)) {
this.termText = '6 months';
} else if (this.termYearsDiff(this.remainingDays, 183, 365)) {
this.termText = '1 year';
} else if (this.termYearsDiff(this.remainingDays, 366, 730)) {
this.termText = '2 years';
} else if (this.termYearsDiff(this.remainingDays, 731, 1095)) {
this.termText = '3 years';
} else if (this.termYearsDiff(this.remainingDays, 1096, 1460)) {
this.termText = '4 years';
} else if (this.termYearsDiff(this.remainingDays, 1461, 1825)) {
this.termText = '5 years';
} else if (this.termYearsDiff(this.remainingDays, 1826, 2555)) {
this.termText = '7 years';
} else
this.termText = '10 years';
}
termYearsDiff(x: number, min: number, max: number): boolean {
return x >= min && x <= max;
}
我正在尝试用Angular为上述函数编写Jest单元测试用例。如何使用it.each
进行编程?
1条答案
按热度按时间4urapxun1#
你会这样做:
我所做的事情的分解:
步骤1.模拟
termYearsDiff
函数:由于termYearsDiff
是同一个类的方法,我不认为你可以轻松地监视它(可能是错误的..我的Angular 间谍知识是生 rust 的最好),但让我们假设你可以。如果没有,您可能需要重构代码,使其更具可测试性。步骤2.设置测试表:对于
it.each
,您将建立一个表,其中每行代表一个测试用例。每行将包含:this.remainingDays
的值。this.termText
的期望值。第三步:编写测试:对于每个测试用例,您将设置
this.remainingDays
的值,调用rateTermCalc
,然后检查this.termText
是否与预期值匹配。termYearDiff
代码,它只会在我的错误中出错,我不能完全 FlinktermYearDiff
算法,但对它的作用有大致的了解,我懒得为此编写我的脚手架代码......但如果你提供更多细节,我们可以得到一个工作示例。