我正在尝试创建一个模拟系统故障以确保Oracle Berkeley DB XML数据库完整性的测试。在插入操作过程中,当前正在经历数据丢失,所以我想设置一个测试,开始插入任意数量的文档,并沿途解决这个过程(类似于电源线上的某个人)。在进程死亡后,我想生成一个新进程并打开数据库以确保它正常打开。JUnit测试数据库失败?
单元测试是Maven构建中的众多测试之一,并且此测试必须在Linux和Windows XP环境中运行。我目前的思考过程是为这两个操作系统制定一个脚本,因为我可以使用该脚本来终止该进程并在其位置启动一个新脚本。我有其他选择吗?我可以使用JUnit创建单独的进程空间/ VM吗?
你想测试数据库?或者你想测试你的代码使用该数据库? – 2010-01-22 18:20:49
我想要它来测试我的代码,因为有问题的数据库被嵌入。系统故障期间的数据损坏是非事务性Berkeley DB XML(我们必须使用)的已知问题 - 我在包装代码中实施了一些理智检查以减轻损坏。 – toddk 2010-01-22 18:37:44
然后,你会想编写单元测试来证明你的理智检查完成他们应该做的事情。您可以编写数据库接口模拟并模拟各种故障,以便确定行为。根本问题是证明你实施的完整性检查实际上可以防止你描述的腐败。我不会在单元测试中做到这一点,除非在每次测试运行时失败都是可重现的。如果他们不是,我会把这个测试当作一个性能/稳定性测试来代替。 – ShabbyDoo 2010-01-23 02:26:37