Book aBook = mock(Book.class);
当我写执行
时 aBook.getClass()
它给出了
classcom.tw.model.Book$$EnhancerByMockitoWithCGLIB$$feb29207
但我想:classcom.tw.model.Book
答案 0 :(得分:1)
使用instanceof
代替getClass()
void methodUnderTest(Object object) {
if (object instanceof Book) {
Book book = (Book) object;
// read the book
}
}
现在可以通过模拟轻松测试:
@Test
public void bookTest() {
methodUnderTest(mock(Book.class));
}
答案 1 :(得分:0)
自Mockito 2.1.0起,您可以使用getMockCreationSettings()
获取有关 被模拟的详细信息。来自docs
添加了通过
访问模拟创建设置的可能性
Mockito.mockingDetails(mock).getMockCreationSettings()
以下是一个例子:
@Test
public void aTest() {
Foo mock = Mockito.mock(Foo.class);
MockCreationSettings<?> mockCreationSettings = Mockito.mockingDetails(mock).getMockCreationSettings();
Assert.assertEquals(Foo.class, mockCreationSettings.getTypeToMock());
}