猿问

单元测试 - 如何正确计算断言的预期值

我是单元测试的新手,我只是想知道如果一个方法在内部调用自己的公共方法来计算返回值,如下所示:


public Integer getTotalBeforeSubscriptionDiscount() {

  return getTotal() + getSubscriptionSavings()

}

我正在为它编写单元测试,我的问题是:我应该使用特定的整数值来匹配结果与期望的结果,例如


Integer expected = 10;

Integer actual = obj.getTotalBeforeSubscription();

assertEquals(expected, actual);

或者是否允许调用公共方法并在运行时计算预期值,如下所示:


Integer expected = obj.getTotal() + obj.getSubscriptionSavings();

assertEquals(expected, obj.getTotalBeforeSubscription());


MM们
浏览 130回答 2
2回答

慕的地8271018

在测试和被测类中使用相同的代码对您没有好处。如果您在getTotal()实现中引入错误,您的第二个选项仍然会通过,而错过了错误。所以答案是,使用显式数字,或者至少使用不同的代码,例如expected = expectedTotal + expectedSavings.
随时随地看视频慕课网APP

相关分类

Java
我要回答