Tag: junit

Kotlin类文件不能在IntelliJ for JUnit中运行

我是Android和iOS开发人员。 我是新的Kotlin编程语言与IntelliJ。 Java类运行良好,但kotlin类在运行时显示错误。 首先是显示错误相关的JUnit版本。 我GOOGLE了,发现需要配置单元测试的解决方案。 我正在使用mac,所以我按下Command + Shift + T来配置单元测试。 之后,当我运行MySecondClass.kt它显示这样的错误 Information:Kotlin: kotlinc-jvm 1.1.3-2 (JRE 1.8.0_111-b14) Information:7/10/17, 8:24 PM – Compilation completed with 2 errors and 0 warnings in 2s 85ms /Users/ehaque/IdeaProjects/My First Kotlin Project/src/MySecondClassTest.kt Error:(1, 12) Kotlin: Unresolved reference: junit Error:(7, 10) Kotlin: Unresolved reference: junit 我的项目结构是这样的: 我该怎么办?

Android + Kotlin中的实验JUnit支持不起作用

Google最近发布了一个实验性支持,用于在Android Studio中的本地JVM上运行junit。 我想尝试一下,因为我正在使用Kotlin开发我的Android应用程序,我希望我的测试类也可以写在Kotlin上。 不幸的是,我不能使它工作。 我更新了我的gradle配置: sourceSets { main.java.srcDirs += 'src/main/kotlin' androidTest.java.srcDirs += 'src/androidTest/kotlin' test.java.srcDirs += 'src/test/kotlin'//this line was added } testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.9.5" Android Studio识别测试文件夹。 这是我简单的测试类,看看它是否工作 public class MyFirstTestClass { [Test] fun firstTest() { println("I am OK") Assert.assertTrue("".isEmpty()) } } 如果我尝试运行它,我会得到以下消息 未找到类:'com.example.MyFirstTestClass'

与Kotlin一起使用ExpectedException

我已经宣布了与Kotlin的一个预期的例外: @Rule public var exception = ExpectedException.none() 现在我的集成测试用例: @Test @Transactional fun authorize_withInvalidToken() { val response = controller.authorize(networkType = "facebook", oauthToken = "", oauthTokenSecret = null) exception.expect(UnauthorizedException::class.java) } 我得到的错误: org.junit.internal.runners.rules.ValidationError: The @Rule 'exception' must be public. 有没有办法来解决这个问题? 现在我只使用手动try / catch / assert

释放kotlin中的变量

在kotlin中,为了编写测试,我在setUp阶段的每个测试之前创建了一个guice注入器,然后尝试在tearDown阶段释放它: class MyTestClass { …. var injector: Injector? = null … @Before fun setUp() { … injector = Guice.createInjector(modules) … } @After fun tearDown() { … injector = null } @Test fun myFirstTest() { myInstance = injector?.getInstance(Key.get(MyClass::class.java)) // use myInstance here … } … } 我的问题是,在Kotlin的土地上,这样的必要性是不是必需的? 如果有必要,最好的办法是什么?

JUnit测试在Kotlin

警告:我是TDD和Kotlin的一个巨大的noob。 我在网上找到了用于编写Kotlin中的JUnit测试的很好的代码片段,但是当我复制和粘贴时,IntelliJ不会自动导入kotlin.test.*或org.junit.Test 。 通常在Eclipse中,当我像这样复制和粘贴代码片段时,IDE可以找出这些库位于我的基础Java安装中的位置。 图Kotlin / IntelliJ将是相同的。 在下面的截图,任何想法,为什么我不能导入测试库? 他们是否需要明确添加到我的路径? 我需要把这些test ,而不是src文件夹? 谢谢

Android Studio 3 / Kotlin代码覆盖

我的Android应用程序是多模块项目: include (android-app/kotlin-android)':application', (pure kotlin)':presentation', (pure kotlin)':domain', (android-library/kotin-android)':dataproviders' 我正在使用Junit / Mockito进行测试,并且只有为kotlin android模块生成代码覆盖的问题。 经过测试的行对于android studio是可见的。 在ui.viewmodel包中测试类: 但是,对于纯粹的kotlin (例如,域,演示)测试覆盖工作正常: 我正在使用Android Studio 3.0 Canary 8您可以在github上查看我的build.gradle文件: 的build.gradle dependencies.gradle application.build.gradle presentation.build.gradle Android应用程序模块中的示例测试: MostPopularViewModelTest 纯kotlin模块中的示例测试: MostPopularPresenterTest 有人可以帮我解决我的问题吗? 我尝试通过Jacoco生成代码覆盖,但它也没有显示代码覆盖率。

与jmockit一起使用kotlin

我需要一些建议,使用kotlin使用jmockit。 (CUT)这是我的(Java)测试类: public final class NutritionalConsultant { public static boolean isLunchTime() { int hour = LocalDateTime.now().getHour(); return hour >= 12 && hour <= 14; } } (j.1)这是一个正在运行的Java测试类 @RunWith(JMockit.class) public class NutritionalConsultantTest { @Test public void shouldReturnTrueFor12h(@Mocked final LocalDateTime dateTime) { new Expectations() {{ LocalDateTime.now(); result = dateTime; dateTime.getHour(); result = 12; }}; boolean isLunchTime = […]

Android Studio 3.0 Canary 1:引用Kotlin类的Kotlin测试或Java测试失败

UPDATE 这个问题已经提交到这里: https : //youtrack.jetbrains.com/issue/KT-17951 更新2 这个bug已经在Android Studio 3.0 Canary 3中修复了 原始帖子 我刚刚开始玩Android Studio 3.0,我从一开始就启用了kotlin支持。 我在我的项目中写了一个非常简单的Kotlin类: data class Wallet(val coins: Int) { fun add(value: Int): Wallet = Wallet(coins + value) fun substract(value: Int): Wallet = if (coins > value) Wallet(coins + value) else throw InsufficientFundsException() } 现在我想测试这个类,首先我在Kotlin上写了一个本地运行的unittest(测试目录): class WalletTestKotlin { @Throws(Exception::class) @Test fun add() { […]