android - 意外的断言行为
问题描述
我是 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 包是什么。我用错了吗?
解决方案
您正在使用kotlin.assert
仅在启用平台断言时启用。您所说的应该导致错误的检查永远不会执行。
-ea
使用(启用断言)JVM参数运行它,或者使用assertEquals
通常的测试框架名称,因为assert
它是java中的关键字。
推荐阅读
- javascript - Mongoose 模型未定义
- elasticsearch - 快照 GC 会影响性能吗?用户可以强制GC吗?
- go - 使用动态(config.toml)配置文件运送 Golang 二进制文件
- c - 例如,如何使用 strtok(string, "\n") 删除字符串末尾的 \n?
- python - 从 asn1 格式的签名数据中导出时间戳“signing_time”
- javascript - ember js 非 SPA 方法
- javascript - html/css/js 组件的个人库
- windows-10 - Windows 10 上的 Odoo 内部服务器错误。无法启动 Odoo 服务器 [Odoo 10.0]
- java - 如何在java中将数据从一个对象列表复制到另一个对象?
- android - 如何从另一个类更改 recyclerView 适配器内的 ImageView?