我了解到testng数据提供程序旨在为测试方法提供多个输入/输入数组。但是,每个测试方法只能输入一个输入吗?那是反模式吗?
答案 0 :(得分:1)
在使用@DataProvider
的情况下,TestNG对于最少需要多少数据输入没有任何建议。
但这是用户遵循的一般约定。
如果事先知道将仅使用一组参数值来运行@Test
方法,则应尝试使用@Parameters
批注,该批注通过以下方式从套件xml文件接收输入: <parameters>
标签。
如果事先知道@Test
方法将需要使用多个参数值来运行,那么您应该使用@DataProvider
。
如果事先不知道参数值是一个还是多个,则可以使用@DataProvider
。
@DataProvider
优于@Parameters
的优点是,@DataProvider
驱动的@Test
方法不必通过套件xml强制驱动。您也可以将它们作为单独的测试来运行。
但是,当@Test
方法通过@Parameters
批注接收值时,则仅需要通过套件xml来运行它(当然,您可以通过使用TestNG侦听器注入参数来规避该问题) ,但这不是解决方案,而是解决方法)