我正在使用 PlayFramework 1.2.5 并且正在开发如下所示的功能测试
public class CaseFoldersControllerTests extends FunctionalTest {
@Before
public void setup() {
Fixtures.deleteDatabase();
Fixtures.loadModels("data.yml");
}
@After
public void teardown() {
}
...
@Test
public void createAction() {
....
Request request = newRequest();
request.path = "/case/create";
request.body = new ByteArrayInputStream(json.getBytes());
Response response = makeRequest(request);
//Verify response is OK
assertStatus(200, response);
}
}
在执行我的测试(createAction)期间,data.yml 中的数据不可用。但是,我的测试完成后,数据就在数据库中。
如果我将数据加载语句从 @Before 方法移动到 @After 方法......那么测试成功(因为现在数据已被清理并从先前的测试中重置)。
我假设这是与 JPA 会话相关的,但在 Fixtures.loadModels() 之后添加以下内容并没有帮助:
JPA.em().flush();
另外,有趣的是 @Before 方法是从我的单元测试中复制的,它可以正常工作。只有FunctionalTest我遇到了问题。
TIA, M2