文章30 | 阅读 11908 | 点赞0
ParameterResolver 定义用于在运行时动态解析参数的扩展API。
如果测试构造函数或@Test、@RepeatedTest、@ParameterizedTest、@TestFactory、@BeforeEach、@BeforeAll或@AfterAll方法接受一个参数,那么参数必须在运行时由一个参数解析器解析。
参数解析器可以是内置的(参见TestInfoParameterResolver),也可以由用户注册。
一般来说,参数可以通过名称、类型、注释或其任何组合来解析。对于具体的示例,请参考
CustomTypeParameterResolver 和 CustomAnnotationParameterResolver 的源代码。
由于在JDK 9之前的JDK版本上,javac生成的字节代码中有一个错误,因此可以通过核心 java.lang.reflect.Parameter
直接查找关于参数的注释对于内部类构造函数(例如,@嵌套测试类中的构造函数) API总是失败的。
因此,提供给参数解析器实现的ParameterContext API包含以下方便的方法,用于正确查找关于参数的注释。强烈建议扩展作者使用这些方法,而不是使用java.lang. reflection.Parameter
中提供的方法。以避免JDK中的这个bug。
系列导航
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/ryo1060732496/article/details/80837572
内容来源于网络,如有侵权,请联系作者删除!