我是 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 给出的警告类似于:
Method public java.util.List a.B.getC(java.util.List) has a @Test annotation but also a return value: ignoring it. Use 'suite allow-return-values="true"' to fix this
到目前为止,我发现的允许返回值的唯一有用的示例是当您的测试类实现某个接口(interface)并且您希望通过添加 @Test 注释来测试所有接口(interface)方法时。
关于java - 如何在TestNG测试方法中使用 "allow-return-values="true""?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23149807/