当前位置: 首页 > 知识库问答 >
问题:

使用SpringJUnit4ClassRunner和Mockito将模拟对象注入到方面类中

闾丘京
2023-03-14

我有一个带有@runwith(SpringJunit4ClassRunner.class)的测试类,它用于初始化Mockito:

@Before
public void initMocks() {
    MockitoAnnotations.initMocks(this);
}

现在我有一个@autowired field来获得方面的建议,但不能注入模拟。

@Autowired
private MyMock myMock;
@Around("execution(* xxx.MyService.aspectMethod(..))")
public void process(ProceedingJoinPoint joinPoint) throws Throwable {
    myMock.mockMethod();
}
@RunWith(SpringJUnit4ClassRunner.class)
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class MyTest {

    @Autowired
    private MyService myService;
    @Mock
    private MyMock myMock;
    @InjectMocks
    private MyAspectClass;

    @Before
    public void initMocks() {
        MockitoAnnotations.initMocks(this);
    }    


    public void shouldXXXX() {

        doThrow(Exception.class).when(myMock).mockMethod();
        myService.aspectMethod();

        ....
    }

    ...
}

共有1个答案

程卓君
2023-03-14

答案很简单

@InjectMocks
    private MyAspectClass;
 类似资料:
  • 问题内容: 我想将Mockito模拟对象注入到Spring(3+)bean中,以进行JUnit的单元测试。我的bean依赖项当前是通过在私有成员字段上使用注释来注入的。 我考虑过使用,但是我希望注入的bean实例实际上是一个代理,因此没有声明目标类的私有成员字段。我不希望为依赖项创建一个公共的setter,因为我将纯粹出于测试目的而修改接口。 我遵循了Spring社区提供的一些建议,但是未创建该模

  • 目前,我遇到了一些莫基托图书馆的麻烦...更确切地说,我无法将userRepository bean注入到我的模拟服务中。对于依赖注入,我使用的是spring boot。下面是一些代码示例: 在我的测试方法中,我想在用户得到更新之前跳过验证和令牌创建。 因此,当我调用updateUser方法时,问题出现在我的测试方法中,它失败了,因为我的userRepository没有注入(NullPointer

  • 可以模拟抽象类,也可以使用Mockito注释将模拟类注入抽象类。我现在有以下情况: 我想在AbstractClassUnderTest上使用类似@InjectMocks的东西,但它不能与@Mock结合使用。Powermock的Whitebox的当前情况是有效的,但我很好奇是否可以通过注释来解决它。我找不到任何解决方案或示例。 (我知道对测试抽象类的反对意见,我个人更愿意测试一个具体的实现,只使用@

  • 我有下课情节。在测试MyTestableClass时,我希望处理Autowired类。我只想模拟AutoWired类中的变量。 示例类如下- 例如,Console在返回true之前应该给我“inside Service class”。 提前道谢!

  • 问题内容: 我有以下代码: 我想使用Mockito创建一个测试。我编写了如下测试: 我在网上收到NullPointerException: ,它表示“策略”列表已初始化,但为空。Mohito有什么办法可以像Spring一样浪费时间?是否将所有实现接口“策略”的实例自动添加到列表中? 顺便说一句,我在Wrapper类中没有任何二传手,如果可能的话,我想以这种方式离开。 问题答案: Mockito不知

  • 我试图用Mockito mock对象替换对象。通常的方法是使用Springockito使用xml: 目前,我正在尝试使用Spring的JavaConfig来完成这项工作。突然之间,Java表达式比xml要详细得多: 我发现了一个名为Springockito annotations的库,它允许您执行以下操作: 显然,更漂亮:)唯一的问题是,这个上下文加载器不允许我对其他bean使用和JavaConf