我想测试使用 Mockito 返回书籍对象的 makeBooks()
方法。
因此测试将检查它是否返回一个 book 对象。我该怎么做?
下面是我生产书籍的工厂。该类下面是我的 Mockito 测试类。 我收到错误代码“我误用了 Mockito”
顺便我正在学习 Mockito。这既不是家庭作业,也不是作业。
public class ItemFactory {
public Items getItems(String itemType)
{
public static Books makeBooks(String bookName,String authorName, int ISBN, int id)
{
Books book = new Books(bookName, authorName, ISBN, id);
return book;
}
}
}
public class TestItemFactory {
private static final Books books = null;
private static ItemFactory mockItemFactory;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
mockItemFactory = Mockito.mock(ItemFactory.class);
}
@Test
public void testShouldReturnObjectBooks(){
//ItemFactory methodMakeBooks = Mockito.mock(ItemFactory.class) ;
//Books book = null;// = ItemFactory.makeBooks("Hamlet", "ShakeSpear", 123456, 9);
//final Class<?> bookClass = Books.class;
//Mockito.when(methodMakeBooks.makeBooks(null, null, 0, 0)).thenReturn(book);
Books book = null;
mockItemFactory = Mockito.spy(new ItemFactory());
Books mockBook = Mockito.mock(Books.class);
Mockito.when(mockItemFactory.makeBooks(null, null, 0, 0)).thenReturn(book);
//Mockito.doReturn(mockBook).when(mockItemFactory).makeBooks(null, null, 0, 0);
}
}
最佳答案
您不应该 mock 正在测试的类。您必须模拟正在测试的类/方法正在使用的类。模拟 Itemsfactory.makeBooks() 没有意义
如果有一个 Bookfactory,ItemsFactory 正在使用它来制作书籍,那么您可以模拟 BookFactory 以返回您期望的特定书籍/书籍集。然后你就可以断言
关于java - 使用 Mockito 测试返回对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19748439/