繁体   English   中英

如何使用 Mockito 模拟 @Inject Api-Class

[英]How to mock @Inject Api-Class with Mockito

我正在尝试使用 Junit 测试 Java 方法,

不幸的是,我不能再进一步了,因为 Api 类被辩护为 @Inject

我实际上尝试了我所能做的一切,不幸的是总是返回null并且每次测试都失败。

    @Inject
    private MemberAPi memberApi;




    NewMember newMember = new NewMember();
    newMember = MemberApi.addMember(new CreateMemberParameterObj (newMember, getId , false, Obj ))

测试:我试着像那样嘲笑它,例如

   @Mock
    private MemberAPi mockedMemberApi;



    when(mockedMemberAPi.addMember(anyObject())).thenReturn(anyObject());




模拟 MemberAPI 和 NewMember 类。 使用@InjectMocks ,Mockito 会自动注入 mockMemberAPI 对象。

这是一些代码:

@InjectMocks
private Blam classToTest; // your class.

@Mock
private MemberAPi mockMemberAPi;

@Mock
private NewMember mockNewMember;

@Before
public void before()
{
    MockitoAnnotations.openMocks(this);

    doReturn(mockNewMember).when(mockMemberAPI).addMember(anyObject());
}

我使用doReturn().when().xxx(); 模式而不是when(mockedMemberAPi.addMember(anyObject())).thenReturn(mockMemberAPI); 图案。

注意: thenReturn(anyObject()); 没有意义,因为你不能返回anyObject()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM