有 Java 编程相关的问题?

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

单元测试使用Java在真实对象中注册模拟对象

我有一个需要测试的类,其中包含两个对象,一个是自动创建的,用于从配置文件连接到SQL server,另一个是从构造函数传入的

public class A{
  private SQLCon sqlcon;
  private RunObj runObj;

  public A (RunObj _runObj) {
    this.runObj = _runObj;
  }

  public void runA() {
    sqlcon.connect();
    runObj.run2();
  } 

}

我已经创建了两个测试版本,但都不起作用。使用@injectmock,从构造函数传递的对象将为null

    @Mock private SQLCon sqlcon;
    @Mock private RunObj runObj;
  
    @InjectMocks private A aobj = new A(runObj);

    @Test
    pulbic testA (){
       aobj.runA();
    }

但如果不使用@injectmock,我如何将SQlcon注册为类A中的对象。例如:

    @Mock private SQLCon sqlcon;
    @Mock private RunObj runObj;
  
    private A aobj = new A(runObj);
    
    @Test
    pulbic testA (){
       aobj.runA();
    
   }

类A中的sqlcon为空。 如何为此类a创建UT


共 (0) 个答案