java - 如何从java类获取变量的值到JUnit

标签 java random junit parameter-passing getvalue

我正在测试计算器的功能:

//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/

相关文章:

java - 通过位移来读/写数据

swift - 确定何时随机调用函数的最佳方法

eclipse - 如何为Eclipse中的所有测试设置环境变量?

java - 使用反射修改抽象类中的字段

java - 如何创建一个将文本输入传递给 servlet 并重定向到同一个 servlet 的 Flex 程序

java - FTP 下载期间正在创建新文件

C++ 随机数 -100 到 100

java - 模拟私有(private)包装器/基元/字符串字段

java - Java平台的投资数据

language-agnostic - 在 [0.0, 1.0) 范围内的 double 的唯一值总数是多少?