如何在TestNG测试方法中使用“allow-return-values =”true“”?

时间:2014-04-18 07:48:58

标签: java selenium selenium-webdriver testng

我是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测试方法的返回值?

1 个答案:

答案 0 :(得分:1)

选项&#39;允许返回值&#39;并不是要测试回报价值&#34; hai&#34;。它旨在允许对具有返回值的方法进行@Test注释。

默认情况下,TestNG遵循单元测试的最佳实践,这意味着单元测试方法不应具有返回值。但是,有时您希望将@Test批注添加到具有返回值的方法中。如果您未指定&#39; allow-return-values&#39;在您的套件配置中,TestNG将打印出警告,并且不会将该方法作为测试运行。

TestNG提供的警告类似于:

  

方法public java.util.List a.B.getC(java.util.List)具有@Test注释但也有返回值:忽略它。使用&#39;套件allow-return-values =&#34; true&#34;&#39;解决这个问题

到目前为止,允许返回值的唯一有用示例是当您的测试类实现某个接口并且您希望通过添加@Test注释来测试所有接口方法时。

有关真实文档,请参阅http://testng.org/doc/documentation-main.html