JUnit测试数据库失败?

tod*_*ddk 6 java junit unit-testing process

我正在尝试创建一个模拟系统故障的测试,以确保Oracle Berkeley DB XML数据库的完整性.在插入操作期间当前正在经历数据丢失,因此我想设置一个测试,开始插入任意数量的文档并沿途解开过程(类似于某人扯断电源线).在进程死后,我想生成一个新进程并打开数据库以确保它正常打开.

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

Ben*_*enM 1

我不认为这种测试是单元测试,但尽管如此,您也许可以做这样的事情。

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

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

我发现SQLite 团队也在执行模拟故障策略作为其自动化测试套件的一部分。