当前位置: 首页 > 知识库问答 >
问题:

莫奇托没有嘲笑

亢仰岳
2023-03-14

我是Mockito的新手,正在尝试模拟服务方法。但是,Mockito无法正确模拟函数。

以下是部分测试代码:

@Mock
ConditionalLimitDao conditionalLimitDao;

@InjectMocks
ConditionalLimitFilingServiceImpl conditionalLimitFilingService;

Mockito.when(conditionalLimitDao.getAllConditionalLimitProductGroups()).thenReturn(Arrays.asList(clpg1));

课程:

public class ConditionalLimitFilingServiceImpl implements ConditionalLimitFilingService {

    @Inject
    private ConditionalLimitDao conditionalLimitDao;

    @Override
    public List<ConditionalLimitFiling> getConditionalLimitFiling(String filingMonth, Date reportDate)
            throws SQLException, RemoteException {

        conditionalLimitProductGroups = getConditionalLimitProductGroups();

        return something;
    }

    private List<ConditionalLimitProductGroup> getConditionalLimitProductGroups() {
        return conditionalLimitDao.getAllConditionalLimitProductGroups();
    }
}

我期待getAllHarditionalLimitProductGroup()返回一个非空列表。但是,它返回了一个空列表。有人能帮忙吗?

共有1个答案

百里诚
2023-03-14

我想你忘了加上这一行

MockitoAnnotations.initMocks(this);

这行代码应该放在@在方法中,以初始化每个测试的模拟。

 类似资料:
  • 我有个问题。也许这是非常基本的。我们可以这样做吗 而不实际调用我们测试类中的方法? 我的测试类: 如您所见,“提供者”只被嘲笑而没有被显式调用。调用它的唯一方法是当我调用action.update()时;我得到了错误 通缉但未调用:实际上,与此模拟没有任何交互。provider.get名称()

  • 试图将我的项目从Java 11更新到Java 17,在一个特定测试中,Mockito出现了一个意外错误。 投掷 不知道为什么Mockito这次考试不及格。

  • 我有一个Spring MVC应用程序。它有控制器、服务和Dao。我只想通过使用Mockito模拟DAO层来测试控制器和服务。 我的控制器类: 我的服务类: 我的测试类: 问题:通过自动连线控制器和服务,它可以很好地执行通话。然而,从服务中,DAO调用的是一个真正的DAO,而不是模拟的DAO。 > 在控制器中保留道并对控制器使用@InjectMock可以正常工作,但是我想在服务中保留道,并且只测试控

  • 我对莫基托有疑问。我想测试这个简单的类: 我写了这个简单的测试: 此测试运行时没有错误。我等待它没有编译,因为没有任何对userService方法的调用…

  • Mockito似乎是一个非常好的Java存根/模拟框架。唯一的问题是我找不到任何关于使用API的最佳方法的具体文档。测试中使用的常用方法包括: 当您在实践中看到Mockito的示例时,您会看到如下代码: 从我读过的所有文档中,我已经识别了几个Mockito“语法”的“模式”,这些“语法”是通过将这些方法调用像上面的示例一样链接在一起而获得的。我发现的一些常见模式有: 当/然后:当(你的方法())。

  • Mockito——我知道间谍在对象上调用实际方法,而模拟在双对象上调用方法。此外,除非有代码气味,否则要避免间谍。然而,间谍是如何工作的?我应该在什么时候使用他们?它们与模拟有什么不同?