kotlin - 面向多平台时测试方法名称中的空格
问题描述
我真的很喜欢 Kotlin 为方法名称添加空格的能力,这是一种有据可查的方法,通常用于使测试名称更具可读性:
在测试中(并且仅在测试中),可以使用带有反引号的空格的方法名称。(请注意,Android 运行时当前不支持此类方法名称。) ...
class MyTestCase { @Test fun `ensure everything works`() { ... } ... }
我在我正在开发的一个针对 JVM 的新库中大力采用了它们。我的测试在 IntelliJ 中显示得很漂亮,一切都很好。
现在,我正在尝试将此库移植为多平台(针对 JVM 和 JavaScript)。当我添加带有空格的测试时,我在 Gradlebuild
运行时收到以下 Kotlin 编译器错误compileTestKotlin2Js
:
名称包含不能出现在 JavaScript 标识符中的非法字符
我应该从我的测试方法中删除所有空格,还是有另一种方法可以两全其美?
另外,关于“Android运行时目前不支持此类方法名称”的限制,这是真正的限制吗?只要我可以在 JVM 上运行测试,我仍然可以使用针对 Android 运行时的测试库(在任何方法中都不包含空格),对吗?
解决方案
对于通用模块或 JavaScript 模块中的测试,您是对的,您将不得不放弃使用反引号的好名称,而使用更传统ensure_everything_works
或类似的名称。对于特定于 JVM 的测试,您可以继续使用反引号和空格。
这包括您稍后计划在 Android 上运行的代码的 JUnit 测试。唯一的限制是您不能在实际必须在 Android 环境中运行的测试中使用空格,但是单元测试(我假设 JUnit)在您的开发机器的 JVM 上运行,因此它们仍然可以使用标识符中的空格.
推荐阅读
- svn - git pull-remote 分支找不到远程参考 [尝试了许多解决方案但失败]
- python - selenium.common.exceptions.TimeoutException 同时通过 expected_conditions 在元素上调用 .click()
- java - 利用 spring kafka 在 kafka 消费者中手动提交偏移的方法
- python - 训练后的神经网络步骤
- python - 按索引访问枚举中的项目
- php - 在两个单词之间执行两个空格
- python - 表单中字段之间的Django间距
- mysql - 从每个组中获取除最大值之外的所有项目 - mysql
- kubernetes - 与 ConfigMap 相比,Secrets 的价值是多少
- c++ - 平衡数组索引,同时从左右对数组求和