我在金融行业工作,我所指的 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/