如何在测试中测试值/返回值以便在我的实际函数中返回测试?
function testing(one,two,three){
var result;
var add=one+two;
var subtr=three-two;
result=one+add+subtr;
return result;
}
testing(5,10,4)
如果我想测试结果,我会这样做:
describe("calculate numbers", function() {
it("result should add all three arguments", function() {
var final = testing(5,10,4);
expect(final).toEqual(14);
});
})
但是如何测试我的功能中没有返回的内容?我如何测试例如'add'或'subtle',所以对于add来说它应该返回15.我可以在测试期间返回其他值,我在实际函数中没有返回吗?
答案 0 :(得分:0)
当您发现难以进行单元测试时,无论编程语言如何,都表明代码体系结构中存在可能的气味。首先编写测试,然后只编写代码,如果你想拥有易于测试的代码,又称TDD。
一方面,简单的解决方案是将您的功能分成几个较小的功能并分别进行测试。这样您就不会违反单一责任原则(SRP)。
然而另一方面,如果函数中的逻辑是微不足道的,而你只关心最终结果,那么只测试最终结果,即测试代码应该返回的内容而不是它应该如何返回它。
在现实生活中,我倾向于将功能分解为较小的功能并将其包装在数据服务中,并对数据服务进行单元测试。