如何使用ormlite项目测试android
任何人都可以帮我解决这个问题:如何测试使用ormlite的android应用程序 我想知道如何从dao创建模拟。这个代码给了我一把刀如何使用ormlite项目测试android,android,junit,ormlite,Android,Junit,Ormlite,任何人都可以帮我解决这个问题:如何测试使用ormlite的android应用程序 我想知道如何从dao创建模拟。这个代码给了我一把刀 public Dao<Account, Integer> getAccountDao() throws SQLException { if (accountDao == null) { accountDao = getDao(Account.class); } return accountDao; } publ
public Dao<Account, Integer> getAccountDao() throws SQLException {
if (accountDao == null) {
accountDao = getDao(Account.class);
}
return accountDao;
}
public Dao getAccountDao()引发SQLException{
if(accountDao==null){
accountDao=getDao(Account.class);
}
返回accountDao;
}
我的测试活动如下所示:
public class OrmActivity extends OrmLiteBaseActivity<DatabaseHelper> {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initUi();
initUiListeners();
RuntimeExceptionDao<Account, Integer> accountDao = getHelper().getAccountDataDao();
Account account = new Account();
account.setName("name");
account.setPassword("password");
accountDao.create(account);
}
公共类或活动扩展了OrmListeBaseActivity{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initUi();
initUiListeners();
RuntimeExceptionDao accountDao=getHelper().getAccountDataDao();
账户=新账户();
账户。设置名称(“名称”);
帐户设置密码(“密码”);
accountDao.create(account);
}
我不想为测试创建单独的数据库。相反,我想使用mock
致以最诚挚的问候我使用Robolectric对Android应用程序进行单元测试。与RoboGuice和Ormlite配合使用效果良好。Robolectric创建自己的数据库,因此单元测试不会修改正在测试的设备上的数据库
如果这不能回答您的问题,请澄清您的问题。例如,如何不使用与使用mock dao相关的单独数据库?以防其他人偶然发现此帖子。我遇到的问题是,您需要一个活动实例,以便将上下文传递给OpenHelperManager.getHelper(android.content.Context,类openHelperClass)方法 为了解决这个问题,我创建了一个ActivityInstrumentationTestCase2测试类来提供上下文。您可以使用MockContext,但我理解这是有问题的。这种方法很简单,有点愚蠢:) 在这一点上,我不需要测试任何活动功能,只需要测试数据库功能
public class TestActivity extends ActivityInstrumentationTestCase2<MainFragment> {
public TestActivity() {
super(MainFragment.class);
}
protected void setUp() throws Exception {
super.setUp();
//DatabaseHelper.class is the extended OrmLiteSqliteOpenHelper class
OpenHelperManager.getHelper(getActivity(), DatabaseHelper.class);
}
protected void tearDown() throws Exception {
OpenHelperManager.releaseHelper();
super.tearDown();
}
public void testDetailDiscount() {
//Example code using an entity class that encapsulates ormlite functionality
double total = 95 * 5;
DocumentDetail detail = DocumentDetail.create(getActivity());
assertEquals(total, detail.getTotal());
}
}
公共类测试活动扩展了ActivityInstrumentationTestCase2{
公开测试性{
super(MainFragment.class);
}
受保护的void setUp()引发异常{
super.setUp();
//DatabaseHelper.class是扩展的OrmLiteSqliteOpenHelper类
OpenHelperManager.getHelper(getActivity(),DatabaseHelper.class);
}
受保护的void tearDown()引发异常{
OpenHelperManager.releaseHelper();
super.tearDown();
}
公共void testDetailDiscount(){
//使用封装ormlite功能的实体类的示例代码
双倍合计=95*5;
DocumentDetail=DocumentDetail.create(getActivity());
assertEquals(total,detail.getTotal());
}
}
希望对你有所帮助@christine-你有机器人电气和奥姆莱特工作的示例代码吗together@Christine你能把链接放在这里让任何人都能找到吗?