我正在测试计算器的功能:
//Calculator.java(伪)
参数1:整数
参数2:整数
参数3:随机数生成器
示例:参数1(随机参数3)参数2
现在,由于参数 3(随机),我在断言中遇到了问题。
我无法在断言中输入静态值,我需要先获取随机值。帮助
最佳答案
您可以在 Calculator 类中提供 getter 来检索所使用的运算符,但这是一种有限的方法,因为您将在对象状态中提供信息。
因此,它将始终返回最后使用的运算符。
它不是线程安全的,如果在 calculate()
方法中抛出异常,如果您不使用指示最后一次计算失败的内容对其进行评估,您可能会感到惊讶。
作为替代方案,您可以返回一个包装结果 (int) 和有效使用的运算符的对象,而不是返回 int
。
请注意,单元测试必须涵盖 calculate()
方法的所有可能场景。
由于所使用算子的随机性,保证所有场景都经过测试并不是直接的。
您应该打开被测方法的API来选择要使用的运算符(打破随机性以进行可重复的测试),或者在测试方法中根据被测方法的需要执行尽可能多的调用,直到覆盖所有情况。
关于java - 如何从java类获取变量的值到JUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49473669/