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 侦听器注入参数来规避它,但这更像是一种变通方法而不是解决方案)
我知道 testng DataProvider 旨在提供多个 inputs/input 数组来测试方法。但是,每个测试方法只有一个输入可以吗?这是反模式吗?
对于使用 @DataProvider
.
但这是用户遵循的一般惯例。
如果事先知道 @Test
方法将 运行 只有一组参数值,那么您应该尝试使用 @Parameters
注释,它接收来自套件 xml 文件通过 <parameters>
标签。
如果事先知道 @Test
方法需要 运行 多个参数值,那么您应该使用 @DataProvider
.
如果事先不知道参数值是只有一个还是多个,那么您可以直接使用 @DataProvider
。
@DataProvider
优于 @Parameters
的优势在于,@DataProvider
驱动的 @Test
方法不必通过套件 xml 强制驱动。您也可以 运行 它们作为单独的测试。
但是当 @Test
方法通过 @Parameters
注释接收值时,那么它需要 运行 通过套件 xml 仅(当然你可以通过使用 TestNG 侦听器注入参数来规避它,但这更像是一种变通方法而不是解决方案)