gpt4 book ai didi

android - 如何使用 ormlite 项目测试 android

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:36 25 4
gpt4 key购买 nike

任何人都可以帮我解决这个问题:如何测试使用 ormlite 的 android 应用程序?

我想知道如何从 dao 创建模拟。这段代码让我掌握了道

public Dao<Account, Integer> getAccountDao() throws SQLException {
if (accountDao == null) {
accountDao = getDao(Account.class);
}
return accountDao;
}

我的测试 Activity 是这样的:

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);
}

我不想为测试创建单独的数据库。我想使用模拟。

最好的问候

最佳答案

以防其他人无意中看到这篇文章。我遇到的问题是您需要一个 Activity 的实例,以便您可以将上下文传递给 OpenHelperManager.getHelper(android.content.Context context, Class openHelperClass) 方法。

为了解决这个问题,我创建了一个 ActivityInstrumentationTestCase2 测试类来提供上下文。您可以使用 MockContext,但我知道这是有问题的。这种方法很简单,有点像:)

那时我不会费心测试任何 Activity 功能,只测试数据库功能。

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());
}
}

希望对你有帮助

关于android - 如何使用 ormlite 项目测试 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8201252/

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