1

在运行集成测试(在这种情况下,Web 服务与 JDBC 通信)时,如何强制数据库抛出错误,以便检查产生的肥皂错误?

我正在使用 Spring 的事务测试框架,所以仅仅发出一个DROP TABLE whatever;来破坏它是不合理的吗?:D

4

2 回答 2

1

根据我的经验,这是模拟对象的绝佳用途。特定情况下,您需要导致特定故障以测试您的对象(在单元测试的情况下)或对象集(在集成测试的情况下)将如何处理特定故障。最好完全控制失败,而不是在集成测试中强制失败的特定情况。

我最近使用了一个实体框架,遇到了类似的困境。通过为实体创建模拟对象,我能够在运行某些测试时强制在方法调用期间引发异常,以便测试与数据库交互的失败条件。这不是处理 Spring 的事务框架的答案,但我确信同样的原则也适用。

于 2008-11-05T07:19:41.990 回答
0

拔掉数据库服务器的网线会不会很费劲?这很好地模拟了“数据库死亡”。

于 2010-10-30T03:52:35.627 回答