带有构造函数的 TestNG

TestNG with a constructor

我是 testNG 的新手,如果我的 class 有构造函数,我不知道如何进行测试。 请帮助我:)

所以,这是我的。java

public class User {
    static class UserInfo{
        public int age;
        public String address;
        public int points;
        //Constructor
        UserInformation(String Address, int age, int points){
            this.age = age;
            this.Address = Address;
            this.points = points;
        }
    public int getAge(){return age;}
    public String getAddress(){return clinicAddress;}
    public int getPoints(){return points;}

    public int addPoints(int newPoints){
        return points += newPoints;
    }
}

我不知道如何进行测试。我阅读了有关@DataProvider 的内容,但我无法确切地了解它是如何工作的

谢谢!

您不需要对构造函数进行单元测试,因为它只是设置实例变量。您编写单元测试来测试您的业务逻辑。

附带说明一下,您应该将实例变量设为私有,并且只允许通过 getter 进行访问。

关于@DataProvider,当您的整个单元测试具有相同的代码行但只是输入或输出不同时,您可以使用它。在这种情况下,您可以将数据传递给您的数据提供者,并且可以通过使用不同的数据集执行相同的测试方法来 运行 多个测试用例,并且可以避免单元测试代码的重复。

对于您的 addPoints() 方法,我们可以使用 @DataProvider 编写测试用例,如下所示:

@DataProvider(name = "test1")
public Object[][] createData1() {
 return new Object[][] {
   { "Test with zero", 0 },
   { "Test with negative value", -1},
   { "Test with positive value", 1},
 }

然后在测试方法中使用 dataProvider,如下所示:

@Test(dataProvider = "test1")
public void verifyData1(String testCase, int number) {
   //call your method to being tested with input number
}

有关 DataProvider 的更多详细信息,请阅读 https://testng.org/doc/documentation-main.html#parameters-dataproviders