2

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

4

1 回答 1

1

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

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

于 2013-03-20T09:11:37.880 回答