java - 我应该在基于有限状态机的框架的测试中包括什么

标签 java spring unit-testing testing junit

我在金融行业工作,我所指的 FSM 框架是用于订单管理系统的。 它是使用 Java、Spring 编写的,规则/转换在数据库中配置。

当前的测试是使用 JUnit 编写的,使用 Spring JUnit 运行器运行,并且它们仅涵盖每个转换结束时的结果状态。

例如如果订单已修改/修改,则集成流程仅测试最终结果,即订单状态现在在数据库中是否已修改。

它不测试在修改过程中输入的数据是否实际保存在数据库中。也根本没有负面测试。

我的问题是,如果基于 FSM 的框架/应用程序还具有持久化数据、向下游发布数据、向客户发送报告等职责,那么该框架/应用程序应该具有什么样的测试用例。

最佳答案

My question is, what sort of test cases should a FSM based framework / application have if the framework also has a responsibility of persisting data, publishing data to the down streams, sending reports to customers etc.

Java 代码的单元测试不应与数据库通信。这并不意味着他们不应该测试此通信。您应该用测试代理替换数据库访问类(您的 OR 映射框架)。

您的单元测试应该测试 Java 代码中各个单元的任何公共(public)可观察行为。这包括对来自数据库的错误的 react (由测试代理的配置强制执行)。

关于java - 我应该在基于有限状态机的框架的测试中包括什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41337885/

相关文章:

java - 索引范围的上限是否总是假定为排他性的?

java - 如何指定数组作为参数

java - Spring Boot 在启动时使用构造函数参数初始化 bean

spring - Spring Security 从 3.2.7 更新到 4.0.2.RELEASE 如何处理 defaultRolePrefix ="ROLE_"

ScalaCheck 无法将 bool 值转换为 Prop 实例

c# - 如何对使用静态类的方法进行单元测试,而该静态类又使用 ConfigurationElementCollection?

java - JavaFX:OS停靠栏中的程序标题(例如,Ubuntu 19.10)

java - 从 mySQL 数组字段中检索单独的元素并迭代以创建映射

java - 如何统计Spring项目中所有带有@Controllers属性的类

perl 如何模拟线程行为