- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的 FragmentActivity
在 onCreate()
中调用 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/
我今天对一个简单的应用程序进行了单元测试。我有一个方法 protected void onRestart() { disp.setText("The numbers you entered w
我正在使用 Android Studio 来尝试和测试我的 Activity 。这是基本代码: public class MyActivityTest extends ActivityUnitTest
在 ActivityUnitTestCase 的 JavaDoc 中它说: Do not call from your setUp() method. You must call this metho
我的 FragmentActivity 在 onCreate() 中调用 getActionBar(): @Override protected void onCreate(Bundle savedI
我的测试侧重于 AsyncTask 完成并验证后续 Activity 是否已启动。 众所周知,除非从 UI 线程实例化并执行 AsyncTask,否则不会调用 AsyncTask#onPostExec
我正在尝试在 android 中测试一个将显示 ProgressDialog 的 Activity,并且在应用程序中一切正常,但是当我尝试使用 ActivityUnitTestCase 并且测试导致
我是 Android Instrumentation 案例的新手。我一直在查看 API 示例,发现有时我们使用 ActivityUnitTestCase 和 ActivityInstrumentati
我想基于 android.test.ActivityUnitTestCase 编写一个简单的单元测试。由于测试很简单,我希望执行时间非常短。但测试至少需要 6 秒。 该测试测试 Google 教程中的
如果 getActivity() 始终返回 null,如何在 android 测试中获取 Activity ? public class PageDistrListTest extends Activ
我正在尝试为现有应用程序编写一些测试。我想为测试提供一个测试应用程序类,我遵循了示例 here ,因为我也在使用 Dagger 进行 DI。 但是,如果被测 Activity 是 ActionBarA
我正在尝试整合 Espresso 2.0's AndoridJUnitRunner与 ActivityUnitTestCase。但是,当 startActivity() tries to initia
我正在编写单元测试用例来测试一个 Activity 。扩展 ActivityUnitTestCase 类。首先启动基本 Intent 。然后使用 TouchUtils,执行预期的操作。我的操作中有 s
我正在为 Android 中的 ListActivity 编写单元测试,它使用处理程序来更新 ListAdapter。虽然我的 Activity 在 Android 模拟器中运行,但在单元测试中运行相
我一定在这里遗漏了什么。 ActivityUnitTestCase 的 JavaDoc 建议这个测试用例测试一个与系统隔离的 Activity: This class provides isolate
我尝试测试一个使用 ActionBarActivity(来自 appcompat 库)的 Activity。我需要一个自定义应用程序,以便能够操纵 DI 系统来加载我的测试服务而不是实际服务。 如果我
我正在尝试测试模块中的 Activity 。我只是想在测试方法中开始这个 Activity ,但我总是有一个 AssertionFailedError。我在网上搜索了这个问题,但找不到任何解决方案。任
我实现了一个 ListView,它在单击列表项时启动一个新的 Activity。当我手动测试它时,它工作得很好。但是,当我尝试使用 ActivityUnitTestCase 进行自动化测试时,我得到了
我有一个 Android 项目,它使用 Google Maps Android API v2 (google-play-services_lib) 的外部库项目。 我还有测试项目,从第一点开始测试我的
我正在尝试使用 ActivityUnitTestCase 测试 Android 应用程序的 MainActvity。出于某种原因,我什至无法开始测试,因为它失败并显示以下错误跟踪: java.lang
我有一个 Activity 我正在进行单元测试。我想单独测试 Activity,所以 ActivityUnitTestCase非常符合我的目的。 我的 Activity 的 onCreate 方法使用
我是一名优秀的程序员,十分优秀!