Espresso - 该应用无法识别片段中的测试

问题描述 投票:0回答:1

我刚开始学习

espresso
,我已经遇到了一些问题。我想执行一些非常基本的测试,看看它是如何工作的。

在我的场景中,我有一个很少有

EditText's
的片段。每当用户单击
fab button
时,来自
EditText's
的数据将被推送到
database
.

现在,在我的测试中,我想在

fab button
上执行点击,然后,我想检查是否有任何
EditText
视图是空的。

这是我的“测试课”:

@RunWith(AndroidJUnit4::class)
internal class AddEmployeeTest{

    @Test
    fun someTest(){

        onView(withId(R.id.add_new_employee))
            .perform(click())

        onView(withId(R.id.add_employee_name))
            .check(matches(withText("")))

    }
}

每当我运行这个测试时,在“运行”选项卡中,我可以看到有 0 个测试(就像应用程序甚至没有识别这个测试一样)

编辑: 我发现控制台有错误:

 FATAL EXCEPTION: main
                                                                                                    Process: com.example.employeemanagement, PID: 23154
                                                                                                    java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/test/platform/io/PlatformTestStorageRegistry;
                                                                                                        at androidx.test.internal.runner.RunnerArgs$Builder.<init>(RunnerArgs.java:248)
                                                                                                        at androidx.test.runner.AndroidJUnitRunner.parseRunnerArgs(AndroidJUnitRunner.java:393)
                                                                                                        at androidx.test.runner.AndroidJUnitRunner.onCreate(AndroidJUnitRunner.java:302)
                                                                                                        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6751)
                                                                                                        at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2133)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:201)
                                                                                                        at android.os.Looper.loop(Looper.java:288)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7872)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
                                                                                                    Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.test.platform.io.PlatformTestStorageRegistry" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/system/framework/android.test.mock.jar", zip file "/system/framework/android.test.base.jar", zip file "/data/app/~~FyaHq8fjC3MyOK3JXnMk9g==/com.example.employeemanagement.test-HKp_Rjmzcc7Wr_mA0GsiJQ==/base.apk", zip file "/data/app/~~nz1qrLGnr_Tf3aZpH-fcrg==/com.example.employeemanagement-QnvDa-BSMtzD0Xf5SLlZjA==/base.apk"],nativeLibraryDirectories=[/data/app/~~FyaHq8fjC3MyOK3JXnMk9g==/com.example.employeemanagement.test-HKp_Rjmzcc7Wr_mA0GsiJQ==/lib/x86_64, /data/app/~~nz1qrLGnr_Tf3aZpH-fcrg==/com.example.employeemanagement-QnvDa-BSMtzD0Xf5SLlZjA==/lib/x86_64, /system/lib64, /system_ext/lib64]]
                                                                                                        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
                                                                                                        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
                                                                                                        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
                                                                                                        at androidx.test.internal.runner.RunnerArgs$Builder.<init>(RunnerArgs.java:248) 
                                                                                                        at androidx.test.runner.AndroidJUnitRunner.parseRunnerArgs(AndroidJUnitRunner.java:393) 
                                                                                                        at androidx.test.runner.AndroidJUnitRunner.onCreate(AndroidJUnitRunner.java:302) 
                                                                                                        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6751) 
                                                                                                        at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) 
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2133) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                        at android.os.Looper.loopOnce(Looper.java:201) 
                                                                                                        at android.os.Looper.loop(Looper.java:288) 
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7872) 
                                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 

android kotlin android-espresso gui-testing
1个回答
0
投票

每当我运行这个测试时,在“运行”选项卡中,我可以看到有 0 个测试(就像应用程序甚至没有识别这个测试一样)

第一个猜测是从你的测试类中删除

internal
修饰符——它们应该是公开的,以便被注释处理器找到。

© www.soinside.com 2019 - 2024. All rights reserved.