ven*_*ore 12 android integration-testing kotlin android-architecture-components
我正在尝试在我当前在Kotlin中编写的android项目中编写简单的集成测试.
问题是测试没有事件启动并因以下错误而失败:
Error:(4, 36) Unresolved reference: testing
Error:(18, 52) Unresolved reference: InstantTaskExecutorRule
Error:Execution failed for task ':app:kaptGenerateStubsDebugAndroidTestKotlin'.
> Compilation error. See log for more details
Run Code Online (Sandbox Code Playgroud)
我试过谷歌搜索这个问题,但没有成功.
我已经尝试过的步骤:
androidTest)pkgName (androidTest)然后"在...中运行测试")我也尝试将我的源目录从java重命名为koltin,并设置正确的值sourceSets但由于没有成功而将其更改回来,并认为这不是原因.
重要通知:
如果我评论该行import android.arch.core.executor.testing.InstantTaskExecutorRule和所有代码InstantTaskExecutorRule(意味着整个测试逻辑将为空)并放置一个简单assert的例子,那么一切正常.
但是我想用这个特别的东西InstantTaskExecutorRule,想知道问题到底是什么以及如何解决它,或者至少知道我应该在哪里找什么.
这是我的测试代码:
import android.arch.core.executor.testing.InstantTaskExecutorRule
import android.arch.persistence.room.Room
import android.support.test.InstrumentationRegistry
import android.support.test.runner.AndroidJUnit4
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import com.myapp.storage.base.AppDataBase
@RunWith(AndroidJUnit4::class)
class UserDaoTest{
@JvmField @Rule val instantTaskExecutorRule = InstantTaskExecutorRule()
private lateinit var db: AppDataBase
@Before
@Throws(Exception::class)
fun setUp(){
db = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getContext(), AppDataBase::class.java)
.allowMainThreadQueries()
.build()
}
@After
fun closeDB(){
db.close()
}
@Test
fun getUsersWhenNoUserInserted(){
db.userDao().allUsers()
.test().assertNoValues()
}
}
Run Code Online (Sandbox Code Playgroud)
ven*_*ore 10
根据官方谷歌文档,我们应该以这样的方式添加我们的架构组件(LiveData)的测试助手:
// Test helpers for LiveData
testImplementation "android.arch.core:core-testing:1.1.0"
Run Code Online (Sandbox Code Playgroud)
至少对我来说它只是不起作用.(见上面的问题)
实际应该如何:
// Test helpers for LiveData
androidTestImplementation "android.arch.core:core-testing:1.1.0"
Run Code Online (Sandbox Code Playgroud)
现在一切正常!
我刚刚遇到了同样的问题,这是因为我导入了较新版本的 junit,4.13-beta-3。降级到 4.12 版本后,一切正常。
testImplementation "junit:junit:4.12"
我希望这可以对其他人有所帮助。
| 归档时间: |
|
| 查看次数: |
5055 次 |
| 最近记录: |