我是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()
返回一个非空列表。但是,它返回了一个空列表。有人能帮忙吗?
我想你忘了加上这一行
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——我知道间谍在对象上调用实际方法,而模拟在双对象上调用方法。此外,除非有代码气味,否则要避免间谍。然而,间谍是如何工作的?我应该在什么时候使用他们?它们与模拟有什么不同?