我们正在Play Framework 2.x上开发一个带Java的项目,并有一些休息端点。我们还有一些测试用例,如下所示:
@Test
public void testLogout() throws Exception {
FakeRequest request = new FakeRequest("GET", "/product/api/v1/logout");
Result result = route(request);
assertThat(status(result)).isEqualTo(OK);
assertThat(contentType(result)).isEqualTo("application/json");
assertThat(contentAsString(result)).contains("result");
}
另一方面,我们有一些方法[如register()
]无法在生产数据库中测试。
测试影响prod数据库的方法的正确方法是什么?我觉得嘲笑,但我不确定,我不知道该怎么做。如果嘲笑是一个不错的选择,有没有任何有效的例子?
请就此问题给我一些建议。
答案 0 :(得分:2)
我认为正确的方法是不对生产数据库进行测试。
我将测试分为两组,单元测试和集成测试。单元测试是众所周知的,在集成测试中,我测试应用程序本身之外的所有内容(例如,数据库)以及它们之间的连接。
我在需要时使用模拟内存数据库运行单元测试,并针对与生产数据库具有相同结构的数据库进行集成测试。
我希望我的方法可以帮到你。