如何使用 Mockito 模拟 @Inject Api-Class
How to mock @Inject Api-Class with Mockito
我正在尝试使用 Junit 测试 Java 方法,
不幸的是,我无法在某一时刻进一步了解,因为 Api class 被捍卫为 @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());
没有意义,因为你不能 return anyObject()
.
我正在尝试使用 Junit 测试 Java 方法,
不幸的是,我无法在某一时刻进一步了解,因为 Api class 被捍卫为 @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());
没有意义,因为你不能 return anyObject()
.