junit4的mock测试带抛出异常service方法实例

11 阅读1分钟

user1.setDescription("111");

user1.setBirthday(new Date().toString());

user1.setUserName("User1");

user1.setPassword("password1");

user1.setUserId(111);

User user2 = new User();

user2.setDescription("222");

user2.setBirthday(new Date().toString());

user2.setUserName("User2");

user2.setPassword("password2");

user2.setUserId(222);

List userList = new ArrayList<>();

userList.add(user1);

userList.add(user2);

MockUp bookDao = new MockUp() {

@Mock

List findBookByIdInRental(@Param("bookId") String bookId) {

return bookList;

}

@Mock

int deleteBorrowLog(@Param("userId") String userId, @Param("bookId") String bookId) {

return 1;

}

@Mock

int quantityAdd(@Param("bookId") String bookId) {

return 1;

}

};

MockUp userDaoMockUp = new MockUp() {

@Mock

List findUserByIdInRental(@Param("userId") String userId) {

return userList;

}

};

new Expectations() {

{

Deencapsulation.setField(bookServiceImpl, "bookDao", bookDao.getMockInstance());

Deencapsulation.setField(bookServiceImpl, "userDao", userDaoMockUp.getMockInstance());

}

};

boolean result = bookServiceImpl.returnBookCheck(null, null);

assertTrue(result);

}

@Test

public void returnBookCheckForISmallerThanOne() throws MyException {

Book book1 = new Book();

book1.setBookId("BookId1");

book1.setBookName("BookName1");

book1.setAuthorName("AuthorName1");

book1.setEducationName("EducationName1");

book1.setQuantity(5);

Book book2 = new Book();

book2.setBookId("BookId2");

book2.setBookName("BookName2");

book2.setAuthorName("AuthorName2");

book2.setEducationName("EducationName2");

book2.setQuantity(7);

List bookList = new ArrayList<>();

bookList.add(book1);

bookList.add(book2);

User user1 = new User();

user1.setDescription("111");

user1.setBirthday(new Date().toString());

user1.setUserName("User1");

user1.setPassword("password1");

user1.setUserId(111);

User user2 = new User();

user2.setDescription("222");

user2.setBirthday(new Date().toString());

user2.setUserName("User2");

user2.setPassword("password2");

user2.setUserId(222);

List userList = new ArrayList<>();

userList.add(user1);

userList.add(user2);

MockUp bookDao = new MockUp() {

@Mock

List findBookByIdInRental(@Param("bookId") String bookId) {

return bookList;

}

@Mock

int deleteBorrowLog(@Param("userId") String userId, @Param("bookId") String bookId) {

return 0;

}

@Mock

int quantityAdd(@Param("bookId") String bookId) {

return 1;

}

};

MockUp userDaoMockUp = new MockUp() {

@Mock

List findUserByIdInRental(@Param("userId") String userId) {

return userList;

}

};

new Expectations() {

{

Deencapsulation.setField(bookServiceImpl, "bookDao", bookDao.getMockInstance());

Deencapsulation.setField(bookServiceImpl, "userDao", userDaoMockUp.getMockInstance());

}

};

boolean result = bookServiceImpl.returnBookCheck(null, null);

assertTrue(!result);

}

@Test

public void returnBookCheckForBookError() throws MyException {

boolean thrown = false;

List bookList = new ArrayList<>();

User user1 = new User();

user1.setDescription("111");

user1.setBirthday(new Date().toString());

user1.setUserName("User1");

user1.setPassword("password1");

user1.setUserId(111);

User user2 = new User();

user2.setDescription("222");

user2.setBirthday(new Date().toString());

user2.setUserName("User2");

user2.setPassword("password2");

user2.setUserId(222);

List userList = new ArrayList<>();

userList.add(user1);

userList.add(user2);

MockUp bookDao = new MockUp() {

@Mock

List findBookByIdInRental(@Param("bookId") String bookId) {

return bookList;

}

@Mock

int deleteBorrowLog(@Param("userId") String userId, @Param("bookId") String bookId) {

return 0;

}

@Mock

int quantityAdd(@Param("bookId") String bookId) {

return 1;

}

};

MockUp userDaoMockUp = new MockUp() {

@Mock

List findUserByIdInRental(@Param("userId") String userId) {

return userList;

}

};