在阅读一篇关于数据驱动测试的文章时,我遇到了一个术语“测试的参数化”。有人可以向我解释这里的参数化是什么意思吗?
问问题
1152 次
1 回答
1
让我们看一个 TestNG 的例子。假设你有函数SomeClass.calculate(int value)
。您想检查函数在不同输入值上返回的结果。
对于非参数化测试,您可以执行以下操作:
@Test
public void testCalculate1()
{
assertEquals(SomeClass.calculate(VALUE1), RESULT1)
}
@Test
public void testCalculate2()
{
assertEquals(SomeClass.calculate(VALUE2), RESULT2)
}
通过参数化测试:
//This test method declares that its data should be supplied by the Data Provider
//named "calculateDataProvider"
@Test(dataProvider = "calculateDataProvider")
public void testCalculate(int value, int result)
{
assertEquals(SomeClass.calculate(value), result)
}
//This method will provide data to any test method that declares that its Data Provider
//is named "calculateDataProvider"
@DataProvider(name = "calculateDataProvider")
public Object[][] createData()
{
return new Object[][] {
{ VALUE1, RESULT1 },
{ VALUE2, RESULT2 },
};
}
这样,TestNG 引擎将从testCalculate
方法生成两个测试,从数组提供参数,由createData
函数返回。
有关更多详细信息,请参阅文档。
于 2013-05-30T18:33:32.543 回答