有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在TestNG测试方法中使用“allowreturnvalues=“true”?

我是初学者。我在官方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) 个答案

  1. # 1 楼答案

    “允许返回值”选项不是为了测试返回值“hai”。它旨在允许@Test注释具有返回值的方法

    默认情况下,TestNG遵循单元测试的最佳实践,这意味着单元测试方法不应该有返回值。但是,有时您希望向具有返回值的方法添加@Test注释。如果在套件配置中未指定“允许返回值”,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

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

    参见http://testng.org/doc/documentation-main.html了解真正的文档