首页 > 解决方案 > 意外的断言行为

问题描述

我是 Kotlin Android 的新手,所以在编写测试时,这些断言意外地通过了:

import org.junit.Test

assert("x".equals("y"))
assert("x" == "y")

但这确实失败了:

import junit.framework.Assert.assertEquals
assertEquals("x", "y")

所以我回顾了字符串结构比较。

然后发现这也通过了:

assert(false)

看起来 org.junit.Test 默认通过以下方式出现在新项目中:

testImplementation 'junit:junit:4.12'

所以现在我想知道要与之同步的正确 testImplementation 包是什么。我用错了吗?

标签: androidunit-testingkotlin

解决方案


您正在使用kotlin.assert仅在启用平台断言时启用。您所说的应该导致错误的检查永远不会执行。

-ea使用(启用断言)JVM参数运行它,或者使用assertEquals通常的测试框架名称,因为assert它是java中的关键字。


推荐阅读