私は、クラスAのgetUserInformationを()モックと嘲笑UserAccessBeanを返すために、どのようにクラスBのisRegisteredUSer()以下のためのユニットテストケースを書くことeasymockとpowermockを使用していますか?powermock-easymockを使ってテストされているメソッドから別のクラスメソッド呼び出しをモックする方法はありますか?
class A{
private int userId;
A(int userId){
this.userId = userId;
}
public UserAccessBean getUserInformation(){
UserAccessBean userAB = new USerAccessBean().findByUserId(userId);
return userAB;
}
}
Class B{
public static boolean isRegisteredUSer(int userId){
A a = new A(userId);
UserAccessBean userAB = a.getUserInformation();
if(userAB.getUserType().equals("R")){
return true;
}
return false;
}
JUnit
public class BTest extends EasyMockSupport{
UserAccessBean userAB = null;
A a = null;
int userId = 12345;
@Before
public void setUp() throws Exception {
userAB = new UserAccessBean();
}
@Test
public void when_UserDesctiptionIsR_Expect_True_FromIsRegisteredUser() throws Exception{
//data setup
userAB.setDescription("R");
A a = new A(12345);
EasyMock.expect(a.isRegisteredUser()).andReturn(userAB);
PowerMock.replayAll();
Boolean flag = B.isRegisteredUser(userId);
assertEquals(flag, true);
PowerMock.verifyAll();
}
}
私はEasyMock.expectを使用している場合でも()getUserInformation()メソッドの呼び出しを模擬するために、私のコンソールはgetUserInformation内で起こっている()私は私のJUnitを実行したとき。
誰かが別のクラスの機能の方法を模擬するために私を助けてください方法から(クラスAのgetUserInformation)コール(クラスBのisRegisteredUSer)がテストされていますか?
Powermockは「mockNew」を提供していますが、テストを容易にするために、あなたのコードをリファクタリングする必要があり、https://github.com/powermock/powermock/wiki/mockconstructorを参照してください –