我正在测试基于Play Framework的应用程序。正如我在文档中读到的那样,为了清除状态,在每次测试之前我都会重新加载像这样的灯具列表:
@Before
public void setUp() {
Fixtures.deleteAll();
Fixtures.load("data.yml");
Logger.info("FIXTURES RELOADED");
}
然后我转到基于Web的测试平台(http://localhost:9000/@tests)
,选择一个处理获取某些数据(User u = User.findById(1l);)
的测试,然后对数据进行断言。有用。
但是,如果我再次尝试选择测试并重新运行,则会失败并显示:
A java.lang.NullPointerException has been caught, Try to read name on null object models.User
如果我完全停止应用程序并重新启动它,它会再次运行(第一次),但启动和停止会花费一些时间并且非常繁琐,如果你每分钟执行10次。
我正在使用Play 1.2.5
答案 0 :(得分:1)
问题是在每次测试时尝试获取ID为1的用户时自动递增用户ID(在每个插入时)。
您可以获取新创建的用户ID并在测试中使用它,或者通过您明确知道的其他字段查找用户。