- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用mockito 2.23.4、junit4 和springrunner 测试方法时遇到困难。我不断收到 InvalidUseOfMatchersException 即使代码对我来说看起来非常好。我不确定我到底错过了什么。任何提示都会对我非常有帮助。我将在下面发布代码。
@RunWith(SpringRunner.class)
public class FiscalClosingServiceImplTest {
@InjectMocks
private FiscalClosingServiceImpl fiscalClosingServiceImpl;
@Mock
private IDataBeanManager dataBeanManager;
@Mock
private IFiscalClosingPopulator fiscalClosingPopulator;
@Mock
private DataBean dataBean;
@Test
public void test_getFiscalClosingListByNodeIdAndSiteId_WhenListNotEmpty() throws ServiceException {
//Arrange
List<DataBean> dataBeansResult = new ArrayList<DataBean>();
dataBeansResult.add(dataBean);
when(dataBeanManager.listBeansByAttributeValue(anyString(), anyString(), anyString(), anyString())).thenReturn(dataBeansResult);
String siteId = "siteId";
FiscalClosing fiscalClosingTest = new FiscalClosing();
fiscalClosingTest.setSiteId(siteId);
when(fiscalClosingPopulator.convertBeanToFiscalClosing(any(DataBean.class))).thenReturn(fiscalClosingTest);
//Act
List<FiscalClosing> result = fiscalClosingServiceImpl.getFiscalClosingListByNodeIdAndSiteId(anyString(), eq(siteId));
//Assert
assertEquals(result.get(0).getSiteId(), fiscalClosingTest.getSiteId());
}
}
要测试的方法如下:
@Override
public List<FiscalClosing> getFiscalClosingListByNodeIdAndSiteId(final String nodeId, final String siteId)
throws ServiceException {
log.debug("Retrieving FiscalClosing by transactionLastUpdatedDateTime");
List<FiscalClosing> fiscalClosingList = new ArrayList<FiscalClosing>();
List<DataBean> dataBeans = dataBeanManager.listBeansByAttributeValue(
EntityConstant.getConstant(CONSTANTS.FISCAL_CLOSING_ID),
EntityConstant.getConstant(CONSTANTS.FISCAL_CLOSING_NODE_ID_ID), nodeId, "");
if(dataBeans.isEmpty()) {
return fiscalClosingList;
}
for(DataBean dataBean : dataBeans) {
FiscalClosing fiscalClosing = fiscalClosingPopulator.convertBeanToFiscalClosing(dataBean);
fiscalClosingList.add(fiscalClosing);
}
return fiscalClosingList.stream().filter(item -> item.getSiteId().equals(siteId)).collect(Collectors.toList());
}
最佳答案
在测试的“Act”部分,您使用参数匹配器作为测试方法的参数:
List<FiscalClosing> result = fiscalClosingServiceImpl.getFiscalClosingListByNodeIdAndSiteId(anyString(), eq(siteId));
您不能像这样使用匹配器,它们应该用于以更通用的方式定义模拟的行为。调用该方法时,您应该传递实际值,尽管它们不一定是有效的,具体取决于您模拟方法其余部分的方式。
就您而言,它可能像这样简单:
List<FiscalClosing> result = fiscalClosingServiceImpl.getFiscalClosingListByNodeIdAndSiteId("nodeId", "siteId");
然后您可能需要更新测试以确保返回正确的站点 ID。
关于Java Mockito 模拟方法时出现 InvalidUseOfMatchersException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58769714/
我的测试用例出现以下错误: junit.framework.AssertionFailedError: Exception occured : org.mockito.exceptio
我正在使用 java spring boot 并尝试在单元测试中为 AWS s3 存储桶编写模拟。以下是在执行测试时导致一些问题的代码 @Mock AmazonS3 s3client;
我已经尝试调试这段代码一段时间了,但仍然没有成功。我继续专门为此代码抛出“InvalidUseOfMatchersException”: 对于设置: service = mock(Se
import org.mockito.Mockito; public class Scratch2 { public static class Foo { } public interface Cus
我在使用mockito 2.23.4、junit4 和springrunner 测试方法时遇到困难。我不断收到 InvalidUseOfMatchersException 即使代码对我来说看起来非常好
我目前在使用 Mockito 时遇到问题。但首先这是我的代码,它创建了 Mockito 提示的模拟: @Test public void testRestEndpointGeneration(
我有这个 TestNG 测试方法代码: @InjectMocks private FilmeService filmeService = new FilmeServiceImpl(); @Mock p
我正在使用mockito,并且面临与匹配器参数相关的问题。 我遇到了这个异常: org.mockito.exceptions.misusing.InvalidUseOfMatchersExceptio
我正在学习 Android MVP 架构并尝试使用 Mockito/JUnit 测试一些方法。我正在从本教程中学习: https://codelabs.developers.google.com/co
我有以下模拟对象: @Mock ObjectMapper objectMapper = new ObjectMapper(); 然后我写了一些 mock 逻辑,声称我做错了: Mockito.when
我正在使用 mockito 进行测试,但我遇到了这个问题: org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid
我有一组测试来验证我们的 Android 应用程序中的某些功能。部分代码负责将某些字符串放入某些 TextView 中。所以我想创建模拟的 TextView 对象以在测试时使用: public sta
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:在此处检测到错误的参数匹配器: 我在对以下静态方法执行 powermocki
我想模拟我的 PermissionHostCompat 类的操作 requestPermission(@NonNull String Permission, int requestCode) 。 pu
我对mockito完全陌生,我已经尝试了很多在网上找到的解决方案,但我仍然无法解决这个问题。我什至不确定是什么原因造成的。我需要为一个非常成熟的代码创建一个模拟测试,我不允许更改该代码。我需要模拟的代
我有这个测试 @Test public void addVacancy() throws Exception{ Vacancy mockVacancy = Mockito.mock(V
我正在尝试使用mockito的ArgumentCaptor类来捕获一些参数,然后对其进行一些验证。但它抛出了一个异常。 这就是打印的错误消息。 org.mockito.exceptions.misus
我在构建测试的 when-then 部分时遇到了问题。运行测试时出现以下错误。 我已经查看了这个 SO 链接 ( Mockito: InvalidUseOfMatchersException ) 并重
我最近在我的项目中将 Maven Surefire 插件升级到版本 v2.14.1(从 v2.6)。升级后,Mockito 开始在所有 JUnit 测试中抛出 InvalidUseOfMatchers
在我的 JUnit 类中,我有以下代码: @Mock private HttpServletRequest servletRequest; @Mock WidgetHelper widgetHelpe
我是一名优秀的程序员,十分优秀!