データベースのテストケースを作成しようとしています。
SQLiteOpenHelperに拡張するヘルパークラスがあります
DBHelper.java
public DBHelper(Context context) {
super(context, DBConstants.DATABASE_NAME, null, DBConstants.DATABASE_VERSION);
}
そして、すべての挿入、削除などを含むコンストラクタークラス。
DBController.java
public DBController open() throws SQLException {
dbHelper = DBHelper.getInstance(context);
database = dbHelper.getWritableDatabase();
return this;
}
私のテストクラス
DBControllerTest.java
@Mock
Context mContext;
DBController dbController;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
RenamingDelegatingContext context = new RenamingDelegatingContext(mContext, "test_");
dbController = new DBController(context);
dbController.open();
}
ここでdbController.open()を実行すると、dbHelper.getWritableDatabase()は常にnullを返します。
この問題を解決するにはどうすればよいですか。また、私はそれを正しい方法で嘲笑しています。私はこれをたくさん検索しましたが、解決策が見つかりませんでした。データベースクエリをテストするための最良の方法は何ですか。
Context
そのようにモックすることはできませんContext
。インストルメンテーションのを使用する必要があります。このテストにはAndroidコードが必要であり、インストルメンテーションが必要なため、必ずandroidTest
ディレクトリ内のテストに配置してください。
例については、この回答を参照してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加