我是测试NG的初学者。我在官方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
测试方法获得返回值?
选项"允许返回值"并不意味着测试返回值"hai"。这意味着允许对具有返回值的方法进行@Test注释。
默认情况下,TestNG遵循单元测试的最佳实践,这意味着单元测试方法不应该有返回值。但是,有时您希望将@Test注释添加到具有返回值的方法中。如果您没有在Suite配置中指定"允许返回值",TestNG将打印出一个警告,并且不会将该方法作为测试运行。
TestNG给出的警告类似于:
方法public java.util.Lista.B.getC(java.util.List)有一个@Test注释,但也有一个返回值:忽略它。使用'suite allow return values="true"'修复此
到目前为止,我发现的允许返回值的唯一有用的例子是,当您的测试类实现了某个接口,并且您希望通过添加@test注释来测试所有接口方法时。
请参阅http://testng.org/doc/documentation-main.html真正的文档。