1
を使用してプライマリキーを返すinsertメソッドをモックん
ServiceImpl
クラスはMyBatisのinsert()
リターン「isSuccessタグ」とオートレコードにUser
オブジェクトのIDを使用してadd()
方法、Mockitoを使ってモックadd()
方法を持って、我々は得ることができませんユーザーID値とNulPointerException
が発生します。どのようにMockitoはMyBatisの
public class ServiceImpl{
public int add() {
User newUser = new User();
newUser.setName("uName");
UserDao userDao=new UserDao();
userDao.add(newUser); //Using myBatis insert() method,and it function is auto assign user.Id and return completed row number.
int userId = newUser.getId();
}
}
//methodTest
public class ServiceImplTest
{
@Test
public void addTest()
{
UserDao userDao=Mockito.mock(UserDao.class);
when(userDao.add(isA(User.class))).thenReturn(1);//NullPointException in newUser.getId();
ServiceImpl serviceImpl=new ServiceImpl();
serviceImpl.add();
}
}
この問題を解決するにはどうすればよいですか? Thaks
あなたはどんなモックが使用されているのか理解していますか? – Mritunjay
私はコードを修正してもう一度質問を編集しましたが、NullPointExceptionが発生します。mybatisのinsert()メソッドは自動的にuserIdを割り当てますが、完了した行数を返します。 ()メソッドは、自動的にuserIdを割り当てますが、完了した行数を返します。私たちはメソッドの返り値だけをモックすることができ、thenReturn()によって代入を疑似できません。 – newCheng