1

私がやろうとしているのは単体テストを実装することですが、その前にデータベースをクリアする必要があります。

問題は、データベースのクリアが NullPointerException で失敗する場合があることです。

基本的に、持っているすべての DTO で deleteAll メソッドを呼び出します (たとえば、BusinessUnit.deleteAll(BusinessUnit.class)。そして、これが失敗することもあります (常にではありません)。

Null ポインターは、SugarRecord 独自のメソッドに由来します。

public static <T extends SugarRecord<?>> void deleteAll(Class<T> type) {
    Database db = SugarApp.getSugarContext().getDatabase();
    SQLiteDatabase sqLiteDatabase = db.getDB(); // exception is thrown here
    sqLiteDatabase.delete(getTableName(type), (String)null, (String[])null);
}

このエラーの原因は何ですか?

4

1 に答える 1

2

まずはsugarormを起動させます。最初に SugarOrm を起動する必要があります。この作業には時間がかかります。したがって、次を追加します。

public class ApplicationTest extends ApplicationTestCase<Application> {
@Override
public void setUp() throws Exception {
    super.setUp();

    // SugarORM need some time to start up, else tests will fail
    Thread.sleep(3000);
}
于 2015-06-24T17:17:18.237 に答える