[英]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.