java 此用例中mockito中whenNew的替代项

vybvopom  于 2023-08-02  发布在  Java
关注(0)|答案(2)|浏览(227)

可以帮我模拟AnotherClass对象吗。
到目前为止我已经尝试过的事情。
1.模拟建筑
1.使用带有设置的构造函数

  1. When then语句
    Powermockito由于某种原因我们无法使用。
ClassToBeTested {
  @Autowired
  DependencyOne dep1;
  @Autowired
  DependencyTwo dep2;

  method(){
    AnotherClass anotherClass = new AnotherClass(dep1,dep2);
anotherClass.someAction();
  }
}

字符串

wnavrhmk

wnavrhmk1#

由于您不应该更改ClassToBeTested的源代码,并且不能使用PowerMockito,我将坚持一种可能的方法,如果可以接受的话:

public class ClassToBeTestedTest {
    @Mock
    DependencyOne dep1Mock;
    @Mock
    DependencyTwo dep2Mock;
    @Mock
    AnotherClass anotherClassMock;

    ClassToBeTested testInstance = new ClassToBeTestedTestSpecificImpl();

    private class ClassToBeTestedTestSpecificImpl extends ClassToBeTested {
        @Override
        method() {
            anotherClassMock.someAction();
        }
    }
    //test methods go here
}

字符串
否则,我们可以自信地说:ClassToBeTested在给定的情况下不可测试。

ahy6op9u

ahy6op9u2#

我能够处理这种情况,让调用转到另一个类,然后用when then语句模拟一些action()方法中的代码。

相关问题