java - 如何从模拟对象获取原始类名?

标签 java mockito

Book aBook = mock(Book.class);

当我写入执行时

aBook.getClass() 它给出

classcom.tw.model.Book$$EnhancerByMockitoWithCGLIB$$feb29207

但我想要:classcom.tw.model.Book

最佳答案

自 Mockito 2.1.0 起,您可以使用 getMockCreationSettings() 来获取有关模拟内容的详细信息。来自docs

Added the possibility to access the mock creation settings via

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());
}

关于java - 如何从模拟对象获取原始类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46191265/

相关文章:

java - 是否可以调用模拟对象的方法?

java - 不模拟方法,而是调用原始方法(mockito)

Java、PowerMock——基于HttpPost请求体的模拟响应

java - 调用 notify 的线程会发生什么

java - 泛型和 Java : how does "extends" work?

java - 使用模拟对象进行 junit 测试 : stub inner function calls

java - 不确定如何捕获和重新分配类中的合成成员

java - Mockito NullPointerException 在 InvocableMatcher 上调用 equals

java - 一对一映射的概念。解释映射

java - 你能去掉这些 if 并使这段代码更加面向对象吗