重新运行测试时出现NullPointerException

时间:2013-03-20 09:04:29

标签: java unit-testing playframework playframework-1.x

我正在测试基于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

1 个答案:

答案 0 :(得分:1)

问题是在每次测试时尝试获取ID为1的用户时自动递增用户ID(在每个插入时)。

您可以获取新创建的用户ID并在测试中使用它,或者通过您明确知道的其他字段查找用户。