Testng - 每个测试方法输入一个数据提供者是否可以?

Testng - Is it okay to have one data provider input per test method?

我知道 testng DataProvider 旨在提供多个 inputs/input 数组来测试方法。但是,每个测试方法只有一个输入可以吗?这是反模式吗?

对于使用 @DataProvider.

时最少需要多少数据输入,TestNG 没有任何建议

但这是用户遵循的一般惯例。

如果事先知道 @Test 方法将 运行 只有一组参数值,那么您应该尝试使用 @Parameters 注释,它接收来自套件 xml 文件通过 <parameters> 标签。

如果事先知道 @Test 方法需要 运行 多个参数值,那么您应该使用 @DataProvider.

如果事先不知道参数值是只有一个还是多个,那么您可以直接使用 @DataProvider

@DataProvider 优于 @Parameters 的优势在于,@DataProvider 驱动的 @Test 方法不必通过套件 xml 强制驱动。您也可以 运行 它们作为单独的测试。

但是当 @Test 方法通过 @Parameters 注释接收值时,那么它需要 运行 通过套件 xml 仅(当然你可以通过使用 TestNG 侦听器注入参数来规避它,但这更像是一种变通方法而不是解决方案)