我的Android应用程序模块中有一个简单的单元测试:
/src/test/java/org.acme.test/SimpleTest.java
当我运行时:
./gradlew clean testDebug --tests='*.SimpleTest'
我得到了这个例外:
java.lang.Exception: Custom runner class AndroidJUnit4 should have a public constructor with signature AndroidJUnit4(Class testClass)
为什么它认为'AndroidJ
我想在考试课上下单。
@RunWith(AndroidJUnit4::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class ATest {
@Test
fun test0000()
@Test
fun test0001()
}
@RunWith(AndroidJUnit4::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class BTest {
@Test
fun test0002()
@Test
fun test0003()
}
我
我有下面的测试,测试名是带有空格的,并为我的仪器测试回勾。
@RunWith(AndroidJUnit4::class)
class MyTestClass {
@Rule
@JvmField
var activityRule: ActivityTestRule<MainActivity> = ActivityTestRule(MainActivity::class.java)
@Test
fun `My space name testing`() {
// Some test
}
}
但是,在运行它时,无法执行
我的测试套件无法运行,看起来是@RunWith(AndroidJUnit4::class)。我正在学习一个教程,所以我不是百分之百确定这部分是做什么的,或者这意味着什么。 @RunWith(AndroidJUnit4::class)错误是注释参数,必须是编译时常量 @RunWith(AndroidJUnit4::class)
class MainActivityTest {
@get:Rule
val activityRule = ActivityTestRule(MainActivity::class.java, true, false)
private val
我正在尝试按照Android开发人员文档来编写一个Instrumented Unit Test,但是,当然,它不能工作。我得到了一个错误:
Custom runner class AndroidJUnit4 should have a public constructor with signature AndroidJUnit4(Class testClass)
每当我运行我的示例测试时:
package com.devetry.ytp
import android.content.Context
import android.support.test.InstrumentationRegi
在我的Kotlin项目中,我想在编译时声明常量:
所以我用这个:
@RunWith(AndroidJUnit4::class)
class TradersActivityTest {
private lateinit var mockServer: MockWebServer
private const val ONE_TR = "no_wallets.json" // error here
但是我有编译时错误:
Const 'val' are only allowed on top level or in objects
如何声明编译时间常数
我是android测试新手,我不知道如何解决这个问题。试图从我的项目中运行以下测试文件:
@RunWith(AndroidJUnit4::class)
class AppDatabaseTest {
private lateinit var userDAO: UserDAO // custom DAO interface
private lateinit var db: AppDatabase
@Before
fun createDb() {
db = Room.inMemoryDatabaseBuilder(
ApplicationProvider.ge
我的测试永远不会完成,我完全不知道为什么。我可以在手机屏幕上看到吐司。日志里什么都没有。 @RunWith(AndroidJUnit4::class)
@SmallTest
class BaseDataFragmentUITest
{
@Test
fun isDisplayingToastWhenFAILED_TO_UPDATE()
{
val fragmentScenario = launchFragmentInContainer<TestBaseDataFragmentImp>()
val toastString: String = con
在我的Android项目中,我有一个类,其中一个函数运行一个协同器,我想使用一个测试(而不是单元测试)来测试这个类。
如下所示:
class DemoClass
{
fun demo(liveData: MutableLiveData<String>)
{
CoroutineScope(IO).launch {
val result = doStuff()
withContext(Main) { liveData.value = result }
}
}
}
在我的仪器测试类中,
我正在尝试使用运行参数化测试。但出于某种原因,参数化测试不会启动。我可以正常运行所有的测试而不需要Orchestrator,但是我需要它来清除测试之间的一些数据。
这是Gradle的输出。它可以看到所有14个测试,但只有12个被执行(缺少2个是参数化的):
Starting 14 tests on Nexus_5X_API_27(AVD) - 8.1.0
Tests on Nexus_5X_API_27(AVD) - 8.1.0 failed: Test run failed to complete. Expected 14 tests, received 12
Test run fail
我刚刚创建了一个新的支持Kotlin的安卓应用程序。
当我尝试运行默认的指令插入测试时,它不会运行,并显示以下消息:
Class not found: "oussaki.com.pos.ExampleInstrumentedTest"Empty test suite.
这是我正在尝试运行的插装测试类:
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test
片段不在单元测试中加载。
代码:
@RunWith(AndroidJUnit4::class)
class DataFeature {
@Test
fun testEventFragment() {
val fragmentArgs = bundleOf("test" to "100")
val scenario = launchFragmentInContainer<DetailFragment>(fragmentArgs)
}
}
错误:
java.lang.Illega
我使用运行android测试,在包含所有必需的依赖项并创建所需的类测试之后,运行它时会给出错误:
java.lang.Exception: Custom runner class AndroidJUnit4 should have a public constructor with signature AndroidJUnit4(Class testClass)
当然,这是一个内置类,所以我不需要修改它,即使我尝试创建一个自定义类,但这导致了其他问题,除非删除我的自定义类中添加的额外构造函数,否则这些问题将无法修复,这导致了同样的问题。
我的测试类:
@RunWith(AndroidJUnit
我试着为我的片段写一个测试用例。片段看起来像这样, @AndroidEntryPoint
class MainFragment : BaseFragment() {
val viewModel: HomeFragmentViewModel by viewModels()
......
} 现在在我的测试类中, @RunWith(AndroidJUnit4::class)
@LargeTest
@HiltAndroidTest
@ExperimentalCoroutinesApi
class MainFragmentTest {
@get:Rule
var hiltR
下面是非常简单的代码:
@Parcelize
data class Inner(val a: Int): Parcelable
@Parcelize
data class Test(val a: Int, val inner: Inner?): Parcelable
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun testParcel() {
val test = Test(0, null)
val parcel = Parcel.obtain
我正在尝试弄清楚如何使用较新的AndroidJunit4和活动规则来测试onSavedInstance。
@RunWith(AndroidJUnit4.class)
public class MyViewActivityTest{
@Rule
public UiThreadTestRule uiThreadTestRule = new UiThreadTestRule();
@Rule
public ActivityTestRule<MyViewActivity> mActivityRule = new ActivityTestRule<&
在我的测试中尝试访问运行时在androidTest/res中定义的资源时,我得到了androidTest/res。我试过几件事但没有运气。这不管用吗?我的代码示例:
ExampleInstrumentedTest.kt
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun test() {
val result = InstrumentationRegistry.getInstrumentation().targetContext.getString(
我正在学习如何使用单元测试。我有一个Retrofit调用,我希望测试它是否返回非空列表,或者我也可以将生成的URL与我的URL进行比较以进行测试。这无关紧要。但是当我运行它的时候,它不工作,它从来没有转到"handleResponse“函数。在我的活动中,它工作得很好。 @RunWith(AndroidJUnit4::class)
class ApiTest {
@Test
fun apiConnection() {
val compositeDisposable = CompositeDisposable()
compositeDi
我一直试图得到一个简单的Espresso单元测试工作,使用Koin作为DI工具。下面是我在build.gradle中使用的依赖项
// testing with Koin
// because of this
// https://github.com/InsertKoinIO/koin/pull/604/commits/69391bc378bbb9007b9d82c46537e7d753be7ea3
androidTestImplementation 'org.mockito:mockito-android:3.1.0'
android
我要通过下面的测试获得java.lang.BootstrapMethodError: java.lang.IllegalAccessError: tried to access class kotlin.jvm.internal.DefaultConstructorMarker from class androidx.room.CoroutinesRoom$Companion,为什么? @RunWith(AndroidJUnit4::class)
class DBTest {
@Test
@Throws(Exception::class)
fun basicOperations