Use Mockito in Junit
2015-05-19 03:11
381 查看
Mockito
Book类package testMockito; import java.util.List; public class Book { private String isbn; private String title; private List<String> authors; private String publication; private Integer yearOfPublication; private Integer numberOfPages; private String image; public Book(String isbn, String title, List<String> authors, String publication, Integer yearOfPublication, Integer numberOfPages, String image) { this.isbn = isbn; this.title = title; this.authors = authors; this.publication = publication; this.yearOfPublication = yearOfPublication; this.numberOfPages = numberOfPages; this.image = image; } public String getIsbn() { return isbn; } public String getTitle() { return title; } public List<String> getAuthors() { return authors; } public String getPublication() { return publication; } public Integer getYearOfPublication() { return yearOfPublication; } public Integer getNumberOfPages() { return numberOfPages; } public String getImage() { return image; } }
使用Book的BookDAL类
package testMockito; import java.util.Collections; import java.util.List; public class BookDAL { private static BookDAL bookDAL = new BookDAL(); public List<Book> getAllBooks(){ return Collections.EMPTY_LIST; } public Book getBook(String isbn){ return null; } public String addBook(Book book){ return book.getIsbn(); } public String updateBook(Book book){ return book.getIsbn(); } public static BookDAL getInstance(){ return bookDAL; } }
对BookDAL进行Junit测试
package testMockito; import static org.junit.Assert.*; import java.util.Arrays; import java.util.List; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class BookDALTest { private static BookDAL mockedBookDAL; private static Book book1; private static Book book2; @BeforeClass public static void setUp() { // create mock object of BookDAL mockedBookDAL = mock(BookDAL.class); // create some instances of Book class. book1 = new Book("8131721019", "Compilers Principles", Arrays.asList( "D. Jeffrey Ulman", "Ravi Sethi", "Alfred V. Aho", "Monica S. Lam"), "Pearson Education Singapore Pte Ltd", 2008, 1009, "BOOK_IMAGE"); book2 = new Book("9788183331630", "Let Us C 13th Edition", Arrays.asList("Yashavant Kanetkar"), "BPB PUBLICATIONS", 2012, 675, "BOOK_IMAGE"); // Stubbing the methods of mocked BookDAL with mocked data. when(mockedBookDAL.getAllBooks()).thenReturn( Arrays.asList(book1, book2)); when(mockedBookDAL.getBook("8131721019")).thenReturn(book1); when(mockedBookDAL.addBook(book1)).thenReturn(book1.getIsbn()); when(mockedBookDAL.updateBook(book1)).thenReturn(book1.getIsbn()); when(mockedBookDAL.updateBook(book2)).thenReturn(book2.getIsbn()); } @Test public void testGetAllBooks() { List<Book> allBooks = mockedBookDAL.getAllBooks(); assertEquals(2, allBooks.size()); Book myBook = allBooks.get(0); // book1 assertEquals("8131721019", myBook.getIsbn()); assertEquals("Compilers Principles", myBook.getTitle()); assertEquals(4, myBook.getAuthors().size()); assertEquals((Integer) 2008, myBook.getYearOfPublication()); assertEquals((Integer) 1009, myBook.getNumberOfPages()); assertEquals("Pearson Education Singapore Pte Ltd", myBook.getPublication()); assertEquals("BOOK_IMAGE", myBook.getImage()); } @Test public void testGetBook() { String isbn = "81317 ae74 21019"; Book myBook = mockedBookDAL.getBook(isbn); assertNotNull(myBook); assertEquals(isbn, myBook.getIsbn()); assertEquals("Compilers Principles", myBook.getTitle()); assertEquals(4, myBook.getAuthors().size()); assertEquals("Pearson Education Singapore Pte Ltd", myBook.getPublication()); assertEquals((Integer) 2008, myBook.getYearOfPublication()); assertEquals((Integer) 1009, myBook.getNumberOfPages()); } @Test public void testAddBook() { String isbn = mockedBookDAL.addBook(book1); assertNotNull(isbn); assertEquals(book1.getIsbn(), isbn); } @Test public void testUpdateBook() { String isbn = mockedBookDAL.updateBook(book1); assertNotNull(isbn); assertEquals(book1.getIsbn(), isbn); isbn = mockedBookDAL.updateBook(book2); assertNotNull(isbn); assertEquals(book2.getIsbn(), isbn); } @Ignore@Test public void testGetInstance() { fail("Not yet implemented"); } }
通过使用mock框架,在不用实际配置数据源的情况下,就可以测试BookDAL类。
相关文章推荐
- Mock HtmlHelper use Moq works in mvc 3
- 使用junit+mockito进行mock测试实例
- 基于Springboot+Junit+Mockito做单元测试的示例
- JUnit + Mockito 单元测试(三)
- 单元测试及框架简介 --junit、jmock、mockito、powermock的简单使用
- 【Java.JUnit】Spring Test, JUnit, Mockito, Hamcrest 集成 Web 测试
- How to use the Junit in JDeveloper
- SPRING + JUNIT + DBUnit + Mockito来做单测
- Mixing JUnit, Hamcrest and Mockito: Explaining java.lang.NoSuchMethodError: org/hamcrest/Matcher.des
- Android 单元测试(junit、mockito、robolectric)
- junit mockito
- 使用Spring+Junit+Mockito做代码自测
- junit与testng 分别和mockito 结合使用例子
- SpringBoot与JUnit+Mockito 单元测试
- how to use Mockito
- 单元测试系列三-基于Springboot+Junit+Mockito做单元测试
- Mock in JUnit
- JUnit + Mockito 单元测试(二)
- JUnit + Mockito 单元测试
- Spring Test, JUnit, Mockito, Hamcrest 集成 Web 测试