gpt4 book ai didi

java - ActivityUnitTestCase getActionBar() 返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:44 24 4
gpt4 key购买 nike

我的 FragmentActivityonCreate() 中调用 getActionBar():

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_expense);
getActionBar().setDisplayHomeAsUpEnabled(true);
}

在模拟器或设备上正常运行应用程序时,这工作正常。但是,当我使用 ActivityUnitTestCase 测试 Activity 时,getActionBar() 总是返回 null。

public class NewTransactionTest extends ActivityUnitTestCase<TransactionEditActivity> { 

private RenamingDelegatingContext myContext;
private DatabaseHelper myHelper;
private RuntimeExceptionDao<Account,Long> myDao;
private Account myBankAccount1;
private Account myBankAccount2;
private Account myCategory1;
private Account myCategory2;
private Budget myBudget;

public NewTransactionTest() {
super(TransactionEditActivity.class);
}

@Override
protected void setUp() throws Exception {
super.setUp();

myContext = new RenamingDelegatingContext(getInstrumentation().getTargetContext(), "test");
myContext.deleteDatabase(DatabaseHelper.DATABASE_NAME);
}

@UiThreadTest
public void testPreConditions() throws Throwable {
setActivityContext(myContext);
final TransactionEditActivity activity = startActivity(new Intent(), null, null);
}

有谁知道为什么 getActionBar() 为单元测试返回 null?

最佳答案

这是设计的一部分。您是否尝试过使用 ActivityInstrumentationTestCase2 代替?不能保证它会起作用,但有更好的机会。 ActivityInstrumentationTestCase2 中可用的 Context 支持更多功能。

Android 中的真正单元测试很难做到。特别是对于 Activity,您应该允许自己“作弊”并改为进行功能测试。

关于java - ActivityUnitTestCase getActionBar() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218568/

24 4 0
文章推荐: android - Robolectric:如何测试 SherlockActivity
文章推荐: javascript - 在 JavaScript 中检测字符串中的阿拉伯字符数
文章推荐: javascript - 如何将文件拖到
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com