我正在使用Dagger 2并使其工作,但我现在需要访问Android应用程序上下文.
我不清楚如何注入和访问上下文.我试过这样做如下:
@Module
public class MainActivityModule {
private final Context context;
MainActivityModule(Context context) {
this.context = context;
}
@Provides @Singleton
Context provideContext() {
return context;
}
Run Code Online (Sandbox Code Playgroud)
但是,这会导致以下异常:
java.lang.RuntimeException:无法创建应用程序:java.lang.IllegalStateException:必须设置mainActivityModule
如果我检查Dagger生成的代码,则会在此处引发此异常:
public Graph build() {
if (mainActivityModule == null) {
throw new IllegalStateException("mainActivityModule must be set");
}
return new DaggerGraph(this);
}
Run Code Online (Sandbox Code Playgroud)
我不确定这是否是注入Context的正确方法 - 任何帮助将不胜感激.
我已应用以下说明:https://code.google.com/p/android-test-kit/wiki/AndroidJUnitRunnerUserGuide 来设置JUnit4测试.
特别是我遵循将Junit4与ActivityInstrumentationTestCase2一起使用的步骤,但是当我在Android Studio中运行测试时,@ Test注释方法没有被执行.如果我使用'test'对方法进行前缀,那么它可以工作,但这不是我对JUnit 4测试所期望的.
有谁遇到过这个问题?
问候,
我正在使用JUnit 4编写Android测试用例(这些测试不使用模拟器并且作为本机测试运行).在我的代码中,我使用SL4J进行日志记录,但是当我运行单元测试时,我无法看到任何日志记录输出.例如以下语句:
private static final Logger logger = LoggerFactory.getLogger(AClass.class);
logger.warn("log output not visible in unit test");
Run Code Online (Sandbox Code Playgroud)
关于是否可以在单元测试中访问记录器输出的任何想法?
问候,