Tag: android espresso

为什么Kotlin允许在不同的文件夹(例如main和androidTest)中有两个具有相同名称和包的类?

我发现在Kotlin中,可能有两个同名的类,在同一个包中,但是其中一个在androidTest文件夹中,运行Espresso测试时,它将成为这个类中的一个。 这在Java下是不可能的,我想知道这是否是一个预期的行为,或者是由于其他原因。 在图像中,Kotlin中的AppCollaborator存在于androidTest和main中,AS不会抱怨,但是它关于JavaCollaborator。 事实是,这种行为是非常有用的,为了在测试(API等)期间加倍一些类,但我不知道我是否可以依靠它。

从1.0.2 – 1.0.3升级Kotlin:java.lang.NoSuchMethodError:没有虚方法provideInjectedData $ app_compileDebugKotlin()

我有一个Kotlin咖啡Dagger2小项目。 当我使用Kotlin 1.0.2时效果很好。 迁移到Kotlin 1.0.3后,运行Espresso Instrumental测试(在MainActivityTest上)时,出现上述错误。 我的Dagger2 TestModule如下 @Module open class ApplicationTestModule(protected val mApplication: Application) { @Provides internal fun provideApplication(): Application { return mApplication } @Provides @Singleton internal fun provideInjectedData(): InjectedData { return mock(InjectedData::class.java) } } 为InjectedData生成的ApplicationTestModule的dagger2如下 package com.elyeproj.kotlinespressomock; import dagger.internal.Factory; import dagger.internal.Preconditions; import javax.annotation.Generated; @Generated( value = "dagger.internal.codegen.ComponentProcessor", comments = "https://google.github.io/dagger" ) public final […]

Android,Espresso测试不能在Kotlin上编写活动

org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.3 com.android.support.test.espresso:espresso-core:2.2.2 工作流程: 片段有列表视图(新闻) 当点击列表上的一些项目,然后打开显示新闻细节的活动(NewsDetailsActivity),标题为“单一消息” 片段的代码: Integer newsId = 1234; Intent intent = new Intent(context, NewsDetailsActivity.class); intent.putExtra(NewsDetailsActivity.ID newsId); startActivity(intent); NewsDetailsActivity的java代码: public class NewsDetailsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle extras = getIntent().getExtras(); setContentView(R.layout.news_details); int newsID = 0; String mainCaption = ""; if (extras != null) { newsID = extras.getInt(SELECTED_NEWS_ID); mainCaption […]

Android Espresso测试(用Kotlin编写)看不到主要的类和包

我有一个Kotlin咖啡测试的问题。 我已经在模块的构建脚本中应用了Kotlin-Android Gradle插件,并且测试在Android Studio中运行时没有问题(测试类由AndroidJUnit4运行器注释并运行),但是从终端运行Gradle任务“assembleDebugAndroidTest”未能找到我的主要的类和包(测试中使用的类),它引发一个Unresolved Reference错误。 以下是构建脚本的sourceSets部分: sourceSets { androidTest { java.srcDir 'src/sharedTestUtils/java' java.srcDir 'src/acceptanceTests/java' java.srcDir 'src/functionalTests/java' java.srcDir 'src/sharedTestUtils/kotlin' java.srcDir 'src/acceptanceTests/kotlin' java.srcDir 'src/functionalTests/kotlin' } acceptanceTests { java.srcDir 'src/sharedTestUtils/java' java.srcDir 'src/sharedTestUtils/kotlin' } // source sets for Kotlin // main.java.srcDirs += 'src/main/kotlin' test.java.srcDirs += 'src/test/kotlin' } 并在模块中测试依赖关系: apply plugin: 'kotlin-android' dependencies { androidTestCompile deps.kotlin androidTestCompile deps.kotlinTest androidTestCompile deps.kotlinTestJunit […]

咖啡测试Kotlin

每当我尝试测试我的Android应用程序,并重写我在Kotlin的测试,我总是得到: 未找到类:“my.package.modules.container.ContainerViewInstrumentedTest” 空的测试套件。 我正在尝试一切,使浓咖啡看到我的测试…但没有运气。 有谁知道什么是错的?

Kotlin和新的ActivityTestRule:@规则必须公开

我正在尝试在Kotlin中为我的Android应用程序进行UI测试。 由于使用ActivityTestRule的新系统,我不能使它工作:编译正确,在运行时,我得到: java.lang.Exception: The @Rule 'mActivityRule' must be public. at org.junit.internal.runners.rules.RuleFieldValidator.addError(RuleFieldValidator.java:90) at org.junit.internal.runners.rules.RuleFieldValidator.validatePublic(RuleFieldValidator.java:67) at org.junit.internal.runners.rules.RuleFieldValidator.validateField(RuleFieldValidator.java:55) at org.junit.internal.runners.rules.RuleFieldValidator.validate(RuleFieldValidator.java:50) at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:170) at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103) at org.junit.runners.ParentRunner.validate(ParentRunner.java:344) at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74) at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55) at android.support.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:38) at android.support.test.runner.AndroidJUnit4.<init>(AndroidJUnit4.java:36) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.buildAndroidRunner(AndroidAnnotatedBuilder.java:57) at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:45) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) at org.junit.runner.Computer.getRunner(Computer.java:38) at org.junit.runner.Computer$1.runnerForClass(Computer.java:29) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:98) at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:84) at […]