java - JUnit 测试数据库失败?

标签 java unit-testing junit process

我正在尝试创建一个模拟系统故障的测试,以确保 Oracle Berkeley DB XML 数据库的完整性。目前在插入操作期间正在经历数据丢失,因此我想设置一个测试,开始插入任意数量的文档并一路解雇该过程(类似于有人猛拉电源线)。进程终止后,我想生成一个新进程并打开数据库以确保它正确打开。

单元测试是 Maven 构建中的众多单元测试之一,该测试必须在 Linux 和 Windows XP 环境中运行。我目前的想法是为两个操作系统敲定一个脚本,因为我可以使用该脚本终止进程并在其位置启动一个新进程。我还有其他选择吗?我可以使用 JUnit 创建一个单独的进程空间/VM 吗?

最佳答案

我不认为这种测试是单元测试,但是您可以做这样的事情。

  1. 使用ProcessBuilder类来构造和启动进程,存储返回的 Process 对象。
  2. 开始插入记录。
  3. 在某个时候destroy()过程。

请记住之前关于此测试的非确定性的评论。

我遇到了 SQLite team also doing a simulated failure strategy作为他们的自动化测试套件的一部分。

关于java - JUnit 测试数据库失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2119436/

相关文章:

java 。我如何使用反射向上转换类型?

wcf - TFS 集成构建中的单元测试 WCF ServiceHost 失败

java - 对于以下代码片段,我需要编写 JUnit 测试用例的帮助。任何解决方案或代码提示将不胜感激

java - 使用 TestNG(或任何其他框架)在测试方法级别定义共享或新夹具

java - 如何正确模拟 WebSocket session ?

java - 如何为 JBoss 实例设置代理

java - JDBC 连接池 : connections are not recycled after DB restart

java - 从 HTMLDocument 获取所有 html 作为字符串

java - 如何在 Spock Groovy 的 THEN 阶段中预期的模拟方法调用后设置变量?

java - 无法在 Spring Boot 中运行任何单元测试