我正在使用带有 TestNG 的 Spring Test 来测试我们的 DAO,我想在某些方法之前运行一个特定的文本夹具脚本,允许在每个方法之后回滚修改,以便测试可以自由地做任何事情夹具数据。
最初我认为“组”适合它,但我已经意识到它们不适合那个(参见这个问题:TestNG BeforeMethod with groups)。
有没有办法配置一个@BeforeMethod
方法只在特定的@Test
之前运行?我看到的唯一方法是解决方法:
- 定义一个普通的设置方法,并在每个
@Test
方法的开头调用; - 将
@BeforeMethod
方法连同依赖它的所有方法一起移至新类(顶层或内部类)。
两者都不是理想的,我想让我的测试自然地分组和干净,而不是因为缺乏替代品而 split 。
最佳答案
您可以在@BeforeMethod 中添加类型为“java.lang.reflect.Method”的参数。然后,TestNG 将注入(inject)当前测试方法的反射信息,包括方法名称,您可以使用这些信息进行切换。
如果再添加一个'Object'参数,也会得到测试方法的调用参数。
您都可以在 TestNG 文档的第 5.18.1 章中找到有关 TestNG 注释方法的所有可能参数。
关于java - TestNG - @BeforeMethod 用于特定方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20640721/