首页 > 解决方案 > TestNG 中的注释是强类型的。这是什么意思?

问题描述

在《下一代 Java 测试:TestNG 和高级概念》一书中,说过“注解是强类型的,所以编译器会立即标记任何错误。”。我知道强类型语言在对其执行操作之前会检查变量的类型,而弱类型语言则不会。此外,强类型语言需要显式转换,而弱类型语言执行隐式转换。那么,这里的“强类型”是什么意思呢?

标签: javaseleniumtestng

解决方案


这本书最有可能尝试做的是区分以下两种方法:

  1. 使用方法名称约定来标识测试方法
    在(例如)JUnit 3 中就是这种情况,其中测试方法的名称将带有前缀test(例如testSomeLogic())。这允许测试库区分那些实际被认为是测试的方法,以及其他设置或实用程序方法。

  2. 使用注释来识别测试方法
    在 TestNG 和更高版本的 JUnit 中,方法一直倾向于使用特定的与测试相关的注释(例如@Test)来注释方法。这里的目标是相同的,它允许测试库正确识别测试和其他与测试相关的方法。

使用注解的好处是它们是实际的 Java 类型,并且会被编译器检查。错误地使用注解@Tset会导致编译错误,提醒用户注意问题。

编译器无法检测到方法名称中的拼写错误。一个方法tsetSomeLogic()将不会被执行,而用户将不知道。


推荐阅读