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 - 如何将声音(WAV)写入文件

javascript - 数学游戏中随机生成方程数的问题

mysql - 如何使用 MYSQL 按随机天数更新日期?

java - 如何防止 Spring 在模拟中注入(inject) @Autowired 引用?

java - SocketException - 'Socket is closed' 即使 isConnected() 返回 true

java - HashMaps遍历的HashMap

java - 从 JUnit 单元测试的角度来看 Java EE 应用程序中 Ant 构建文件之间的任务层次结构和分布

java - 如何在java中使用junit测试对象数组

java - 使用 Android 上的 OpenGL ES 2.0,在帧缓冲区上渲染时是否可以保留多重采样?

php - 如何使用 PHP 显示 MySQL 数据库中的随机图像和文本