首页 > 解决方案 > 为测试类使用相同的创建对象方法的最佳实践是什么

问题描述

我有 2 个类(A 和 B)的 2 个单元测试类(ATest 和 BTest)。我的课程:

public class A {

    public C convert(User user) {
        ...
    }
}
public class B {

    public D getD(User user) {
        ...
    }
}

所以 2 类方法需要一个 User 对象作为参数。我在测试类中生成用户的方法相同:

private User getUserForTest() {

        User user = new User();
        
        ...
        ...
        ...

        return user;
} 

getUserForTest方法太长。我不希望它重复。我的问题是使用相同getUserForTest的 forATestBTestclasses 的最佳做法是什么。

标签: javaunit-testing

解决方案


您正在寻找所谓的测试夹具。

您可以使用带有一些静态方法的第三个类来创建测试装置(您没有测试,但用于测试的东西)。

public class TestHelper{ //or a more specific name would be nice if possible
 
 public static User generateUser(/*add variables if required*/){
 User user = new User();
   ...
   return user;
 }

}

推荐阅读