运行集成测试时(Web服务与JDBC交谈,在这种情况下)如何强制数据库抛出错误,以便检查生成的soap错误?
我正在使用Spring的交易测试框架,因此发布一个DROP TABLE whatever;
来打破它是不合理的吗? :d
答案 0 :(得分:1)
根据我的经验,这是模拟对象的绝佳用法。特别是在集成测试的情况下,为了测试对象(在单元测试或对象集合中)如何处理特定故障,需要导致特定故障的情况。最好是完全控制故障,而不是在集成测试中强制执行失败的特定情况。
我最近在实体框架中工作,遇到了类似的困境。通过为实体创建模拟对象,我可以在运行某些测试时强制在方法调用期间抛出异常,以便测试与数据库交互的故障条件。这不是处理Spring的交易框架的答案,但我确信适用相同的原则。
答案 1 :(得分:0)
将数据库服务器的网络线拔掉多少?这很好地模拟了“数据库死亡”。