在运行集成测试(在这种情况下,Web 服务与 JDBC 通信)时,如何强制数据库抛出错误,以便检查产生的肥皂错误?
我正在使用 Spring 的事务测试框架,所以仅仅发出一个DROP TABLE whatever;
来破坏它是不合理的吗?:D
在运行集成测试(在这种情况下,Web 服务与 JDBC 通信)时,如何强制数据库抛出错误,以便检查产生的肥皂错误?
我正在使用 Spring 的事务测试框架,所以仅仅发出一个DROP TABLE whatever;
来破坏它是不合理的吗?:D
根据我的经验,这是模拟对象的绝佳用途。特定情况下,您需要导致特定故障以测试您的对象(在单元测试的情况下)或对象集(在集成测试的情况下)将如何处理特定故障。最好完全控制失败,而不是在集成测试中强制失败的特定情况。
我最近使用了一个实体框架,遇到了类似的困境。通过为实体创建模拟对象,我能够在运行某些测试时强制在方法调用期间引发异常,以便测试与数据库交互的失败条件。这不是处理 Spring 的事务框架的答案,但我确信同样的原则也适用。
拔掉数据库服务器的网线会不会很费劲?这很好地模拟了“数据库死亡”。