java - TestNG 中的注释是强类型的。这是什么意思?
问题描述
在《下一代 Java 测试:TestNG 和高级概念》一书中,说过“注解是强类型的,所以编译器会立即标记任何错误。”。我知道强类型语言在对其执行操作之前会检查变量的类型,而弱类型语言则不会。此外,强类型语言需要显式转换,而弱类型语言执行隐式转换。那么,这里的“强类型”是什么意思呢?
解决方案
这本书最有可能尝试做的是区分以下两种方法:
使用方法名称约定来标识测试方法
在(例如)JUnit 3 中就是这种情况,其中测试方法的名称将带有前缀test
(例如testSomeLogic()
)。这允许测试库区分那些实际被认为是测试的方法,以及其他设置或实用程序方法。使用注释来识别测试方法
在 TestNG 和更高版本的 JUnit 中,方法一直倾向于使用特定的与测试相关的注释(例如@Test
)来注释方法。这里的目标是相同的,它允许测试库正确识别测试和其他与测试相关的方法。
使用注解的好处是它们是实际的 Java 类型,并且会被编译器检查。错误地使用注解@Tset
会导致编译错误,提醒用户注意问题。
编译器无法检测到方法名称中的拼写错误。一个方法tsetSomeLogic()
将不会被执行,而用户将不知道。
推荐阅读
- python - 当我使用 matplotlib 绘制图形时,如何增加其中一条线的线宽(或加粗)?
- c# - 实现接口或基类的类型列表
- css - 如何在滚动条上进行“彩虹”边框移动
- oauth-2.0 - 是否可以在不设置重定向 URI 的情况下获取 Google Ouath2 访问令牌?
- python - 我怎样才能给线程一个低级函数?
- php - PHP 项目中的目录和路径问题
- collision-detection - 如何使用物质物理在 Phaser 3 中设置平台和精灵之间的约束
- sql - 合计收据金额和数量,包括 SQL 中的特定项目编号 16776
- c# - 初始线程数据机会?
- logic - 如何在 Agda 中证明 `theorem : ¬ ⊤ ≡ ⊥`?