我有一个存储应用程序上下文信息的应用程序 应用程序上下文信息在MyApp类中的活动之间共享,该类扩展了Application类.
我正在为我的活动编写单元测试,我想检查当用户单击活动中的按钮时,应用程序状态将发生变化.像这样的东西:
@Override
public void onClick(View pView) {
((MyApp)getApplicationContext()).setNewState();
}
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何模拟该应用程序上下文.我使用ActivityUnitTestCase作为测试用例库.当我调用setApplication时,它会更改Activity类的mApplication成员的值,但不会更改应用程序上下文的值.我也尝试过setActivityContext,但它似乎不对(它不是应用程序上下文而是活动上下文)并且它在startActivity中触发断言).
所以问题是 - 如何模拟getApplicationContext()?