gpt4 book ai didi

android - Sugar ORM每次单元测试都需要保存记录?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:37:10 27 4
gpt4 key购买 nike

我将 Sugar ORM 用于数据库,将 Robolectric 用于单元测试。要将 Sugar ORM 与 Robolectric 结合使用,我遵循了 this问题。

我将下面的代码放入 startEverTestSugarAppAsFirst 方法并运行。

new PersonHandler(new Activity()).insertPeople();
Person p = Person.findById(Person.class, 1);
System.out.println(p.getName());

它打印第一条记录的名称。到目前为止一切顺利。

但是如果我注释掉 //new PersonH​​andler(new Activity()).insertPeople(); 并再次运行,则不会返回任何记录,并且会出现空指针异常。我认为 Sugar ORM 在第一次运行时将记录存储到某个地方,我可以在第二次访问这些记录。

另一方面,如果我运行模拟器,将下面的代码放在主要 Activity 的 onCreate 方法中,并在第二次运行时注释掉第一行,我可以看到打印的第一条记录在日志中。

new PersonHandler(this).insertPeople();
Person p = Person.findById(Person.class, 1);
Log.v("person", p.getName());

那么,Sugar ORM 会在单元测试结束后删除数据库吗?或者它将数据库保存在哪里以便我可以一遍又一遍地使用它?

最佳答案

它不是SugarORM,而是Robolectric。它会在每次测试时创建临时数据库,因此它们之间没有隐藏的依赖关系。

这是好事,你的单元测试应该成功运行而不依赖于它们运行的​​顺序

关于android - Sugar ORM每次单元测试都需要保存记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36113372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com