草庐IT

statistical-test

全部标签

unit-testing - 使用 kotlin 协程时,如何对调用挂起函数的函数进行单元测试?

我有这样的课classSomeClass{funsomeFun(){//...Somesynchronouscodeasync{suspendfun()}}privatesuspendfunsuspendFun(){dependency.otherFun().await()//...othercode}}我想对someFun()进行单元测试,所以我编写了一个如下所示的单元测试:@TestfuntestSomeFun(){runBlocking{someClass.someFun()}//...verifies&asserts}但这似乎不起作用,因为在runBlocking中的所有内容完

unit-testing - Kotlin:使内部函数对单元测试可见

如果测试与生产代码位于不同的模块中(这很常见),使内部函数对测试可见的最佳方法是什么?在Java中,我会将生产代码和测试放在同一个包中,并将待测试方法包设为私有(private)(另外,如果唯一的话,添加@VisibleForTest注释让它包私有(private)而不是私有(private)的原因是测试)。不幸的是,Kotlin没有包私有(private)的概念。 最佳答案 用internal访问修饰符标记的类和方法将在Kotlin、Gradle和Intellij的当前版本中工作,以便从测试类访问这些方法。这些工具将主源路径和测试

java - Android Studio 3.0 金丝雀 1 : Kotlin tests or Java tests referring to Kotlin classes fail

更新已在此处针对此问题提交了一个错误:https://youtrack.jetbrains.com/issue/KT-17951更新2该错误已在AndroidStudio3.0Canary3中修复原帖我刚开始使用AndroidStudio3.0,我从一开始就启用了kotlin支持。我在我的项目中写了一个非常简单的Kotlin类:dataclassWallet(valcoins:Int){funadd(value:Int):Wallet=Wallet(coins+value)funsubstract(value:Int):Wallet=if(coins>value)Wallet(coin

unit-testing - 如何在 Kotlin 中管理单元测试资源,例如启动/停止数据库连接或嵌入式 Elasticsearch 服务器?

在我的KotlinJUnit测试中,我想启动/停止嵌入式服务器并在我的测试中使用它们。我尝试在我的测试类中的方法上使用JUnit@Before注释,它工作正常,但这不是正确的行为,因为它运行每个测试用例而不是只运行一次。因此,我想在方法上使用@BeforeClass注释,但是将其添加到方法会导致错误,指出它必须在静态方法上。Kotlin似乎没有静态方法。这同样适用于静态变量,因为我需要保留对嵌入式服务器的引用以供测试用例使用。那么如何为我的所有测试用例只创建一次这个嵌入式数据库?classMyTest{@Beforefunsetup(){//worksinthatitopensthed

android - 找不到类 : Empty test suite when running unit tests in Android Studio

我的Android应用有一个测试套件,所有单元测试都运行良好。但是,每当我对我的一个单元测试类(例如,ModelUnitTests)进行一次更改时,在尝试再次运行该类时,我都会收到此消息Processfinishedwithexitcode1Classnotfound:"xxx.xxxxxx.xxx.ModelUnitTests"Emptytestsuite.如果我执行gradleclean然后再次运行类测试,它运行良好(但需要4分钟才能完成......),但是新的更改会再次破坏它。关于如何解决这个问题的任何建议?我不确定我应该发布哪个测试配置。我正在使用单元测试Artifact,我的

安卓棉花糖 : Test permissions with Espresso?

AndroidMarshmallow引入的新权限方案需要在运行时检查特定权限,这意味着需要根据用户是拒绝还是允许访问来提供不同的流程。当我们使用Espresso在我们的应用上运行自动化UI测试时,我们如何模拟或更新权限状态以测试不同的场景? 最佳答案 随着AndroidTestingSupportLibrary1.0的新版本发布,有一个GrantPermissionRule您可以在测试中使用它在开始任何测试之前授予权限。@RulepublicGrantPermissionRulepermissionRule=GrantPermiss

android - src/androidtest 和 src/test 文件夹有什么区别?

在一个项目中,在AndroidStudio中,默认有两个测试文件夹。第一个是src/androidTest。此文件夹已存在于之前版本的AndroidStudio中。然而,现在有一个新的测试文件夹,默认情况下,src/test,和新的依赖,testCompile'junit:junit:4.12'inbuild.gradle.我使用哪个文件夹进行测试?两者有什么区别? 最佳答案 src/androidTest用于涉及android仪器的单元测试。src/test用于不涉及android框架的纯单元测试。您可以在此处运行测试,而无需在真

AndroidJUnit4.class 已弃用 : How to use androidx. test.ext.junit.runners.AndroidJUnit4?

对于我正在使用的仪器测试@RunWith(AndroidJUnit4.class)来自importandroidx.test.runner.AndroidJUnit4;为了建立我的测试用例。现在这一行被标记为已弃用,并提示使用AndroidJUnit4fromimportandroidx.test.ext.junit.runners.AndroidJUnit4但是,如果我尝试从命名包中导入AndroidJUnit4会收到错误,即无法解析ext。你有什么想法,应该在gradle中包含什么包来解决这个问题? 最佳答案 根据thedocu

android - ADB 安装失败并显示 INSTALL_FAILED_TEST_ONLY

我在将apk安装到我的设备时遇到问题。adbinstall使用上述命令返回以下内容:5413KB/s(99747bytesin0.017s)pkg:/data/local/tmp/AppClient.TestOnly.App3.apkFailure[INSTALL_FAILED_TEST_ONLY]对可能导致此问题的原因有任何想法吗?它肯定能识别设备。会不会是apk的问题? 最佳答案 看起来你需要修改你的AndroidManifest.xml将android:testOnly="true"更改为android:testOnly="f

unit-testing - 像往常一样对 docker 容器或 dockerize 测试运行测试?

我是Docker新手,正在阅读Docker。这是在独立且可重现的标准化配置中测试系统的好方法(如果操作正确)。但是,在我阅读的所有内容中,似乎并没有过多强调应该如何使用docker容器进行测试。docker用于“包含”基础设施和应用程序(代码),以便于测试(以及部署)。但有时测试代码库很大,也不是那么简单。一个人可以有一个测试代码库用于API测试,另一个用于UI等。测试Docker容器/应用程序/基础设施的部署的标准做法是什么,或者应该是什么?应该:测试代码以旧的传统方式部署,作为您从某个地方提取的文件存储库,然后在Jenkins服务器/从属或本地主机上运行以进行开发/QA测试/调试,