我是TestNG的初学者。我在官方TestNG文档中了解了测试方法。我不清楚
allow-return-values="true"
的用法,谁能用例子简单解释一下。我做了一个例子,但我不明白使用方式,
这是我的.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="newSuite" parallel="methods" thread-count="5" allow-return-values="true">
<parameter name="browser" value="Firefox"></parameter>
<test name="dataprovider" allow-return-values="true">
<classes>
<class name="com.tets.SampleTest"></class>
</classes>
</test>
</suite>
我的测试课如下,
public class SampleTest {
@AfterMethod
public void teardown(Object returnValueFromTest){
//inspect returnValueFromTest and perform necessary clean up.
}
@Test
public String testEventGeneration(){
//generate event
//returning generated e vent id.
return "E1234";
}
@Test
public String testMarketGeneration(){
//generate market
//returning generated market.
return "hai";
}}
如何以及在哪里可以从
testMarketGeneration
测试方法获取返回值?
选项“allow-return-values”并不意味着测试返回值“hai”。它的目的是允许在有返回值的方法上使用 @Test 注释。
默认情况下,TestNG 遵循单元测试的最佳实践,这意味着单元测试方法不应该有返回值。但是有时您想将 @Test 注释添加到具有返回值的方法中。如果您没有在 Suite 配置中指定“allow-return-values”,TestNG 将打印出一条警告,并且不会将该方法作为测试运行。
TestNG 给出的警告类似于:
方法 public java.util.List a.B.getC(java.util.List) 有一个 @Test 注解,但也有一个返回值:忽略它。使用 'suite allowed-return-values="true"' 来解决这个问题
到目前为止,我发现的允许返回值的唯一有用的示例是当您的测试类实现某个接口并且您希望通过添加 @Test 注解来测试所有接口方法时。
请参阅 http://testng.org/doc/documentation-main.html 了解真正的文档。