在我要测试的类中,我在构造函数中有这段代码
public MyClass (Context context){
String db = context.getDatabasePath("mydb.db").getPath();
this.connection = SQLiteDatabase.openOrCreateDatabase(db, null);
}
mydb.db位于src / test / resources
中这是我的测试类
@RunWith(MockitoJUnitRunner.class)
public class MyTest {
MyClass myClass;
@Mock
Context context;
@Mock
SQLiteDatabase sqLiteDatabase;
@Before
public void setUp(){
MockitoAnnotations.initMocks(this);
URL resource =this.getClass().getClassLoader().getResource("mydb.db");
File file = new File(resource.getPath());
doReturn(file).when(context).getDatabasePath("mydb.db");
myClass=new MyClass(context);
}
}
运行测试时,我有例外:
java.lang.RuntimeException: Method openOrCreateDatabase in android.database.sqlite.SQLiteDatabase not mocked. See http://g.co/androidstudio/not-mocked for details.
我在build.gradle中添加了这个
testOptions {
unitTests.returnDefaultValues = true
}
现在异常摆脱了。
但是MyClass的连接是空的!
是否可以仅使用Mockito进行测试?