有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java模拟函数到底做什么?

我在一个示例项目中发现了这段代码,以前从未见过类似的代码

private final SocketFactory mockedSockFactory = mock(SocketFactory.class)

这到底是什么意思?{}做什么

我猜它是在创建这个类的一个伪对象,或者说是默认对象,但是它从哪里得到它的参数呢?它的定义是什么?它是从哪里来的


共 (2) 个答案

  1. # 1 楼答案

    就像你在问题中提到的,它会创建对象的模拟(假)实例

    这一功能的强大之处在于,它允许您创建功能强大的测试,可以专注于单个对象,而不必太担心它的关系和资源需求。例如(使用更现代的注释方法):

    @InjectMocks UserService service = new UserService();
    @Mock UserRepository repository = new UserRepository();
    
    public void testDelete() {
        List<User> testUsers = generateTestUsers();
        when(repository.findAllUsers()).thenReturn(testUsers);
        service.deleteUsers();
    
    }
    

    上面是一个测试服务级别方法而不必担心数据库依赖性的示例。这意味着测试是可重复的、高效的,并且更加关注您想要测试的功能

    有关更多详细信息,请参阅此链接: http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html

  2. # 2 楼答案

    这是一个静态方法,已经在你的类中statically imported。你可能有

    import static org.mockito.Mockito.mock;
    

    或者

    import static org.mockito.Mockito.*;
    

    在你们班。它也可能来自Mockito之外的另一个模拟框架

    无论如何,这只是一个常规的静态方法,有文档记录。阅读API文档