我有一个JPA/Hibernate/Spring/Tomcat Web应用程序启用二级数据缓存的性能原因。缓存的功能非常好!休眠第二级数据缓存和集成/验收测试
我也有一个Cucumber测试套件,它将一些测试数据直接添加到应用程序的数据库,然后执行一些Selenium步骤。当然,它会失败,因为应用程序由于第二级缓存而没有看到更新。
我知道我可以为缓存禁用进行特殊构建测试(通过为Maven过滤或类似方法传递一些布尔属性)但是有很多@Cache注释实体,所以禁用缓存会导致应用程序失败,级高速缓存未启用“。
另一种方法是使用ehcache remoting清除缓存或将其配置为零对象生存期或类似。
我也只能使用应用程序的UI创建我的测试数据,但是这会增加不必要的复杂性测试案例,所以我宁愿试运行之前,并写入到数据库。
任何人可以分享他们与二级数据缓存集成测试应用程序的方式启用?
不是所有的,但我的一些BDD测试有以下步骤:创建测试数据,做硒事情,清理。 同意黑盒子,但使用UI创建和清理数据有时非常困难,并且可能使测试彼此依赖(如果与保存有关的UI被破坏,所有其他需要保存的测试也会被破坏) – ike3 2012-04-27 09:10:55
是的,依赖测试会失败,但主要目的 - 失败的东西会得到满足。如果您直接向数据库填充数据,那么它本质上不是验收测试,这不是终端用户如何使用应用程序。而这样的测试应该或多或少是粗粒度的。如果您需要更多细粒度的硒,这对Selenium来说可能是一个糟糕的地方。 – 2012-04-27 10:51:29