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

在Mockito中连续调用两个方法时?

吕鸿轩
2023-03-14
    @Mock
    private Randomizer r;
    @Mock
    private Random random;
    @InjectMocks
    private NodeGenerator ng = new NodeGenerator();

    @Test
    public void nodeIsDuplicate() {

        when(r.getRandom()).thenReturn(random);
        when(random.nextInt(2)).thenReturn(1);
        [...]
    }
when(r.getRandom().nextInt(2)).thenReturn(1);

不需要模拟随机,所以我可以用我的随机器模拟在一行上完成所有的事情?

共有1个答案

尚声
2023-03-14

你想要Mockito的一个班轮存根。

编辑:

经过更仔细的检查,这可能不是你正在寻找的,但它可以减少一些锅炉板代码为你。

Randomizer randomizer = mock(Randomizer.class, RETURNS_DEEP_STUBS);

when(randomizer.getRandom().nextInt(2)).thenReturn(1);
 类似资料:
  • 我有一个类,它有两个方法。我想模拟这个类,然后模拟第一个方法,但不是第二个。 例如。 单元测试代码: 奇怪的是m2没有被调用。 我错过什么了吗?

  • 我正在用Mockito为一个项目设置jUnit测试。在被测系统(DrawingService)中调用方法时遇到问题。模拟包括图形和IDrawingRepository。 我不熟悉TDD、单元测试和一般的模拟,所以我可能犯了一些noob错误?任何帮助都将不胜感激。 以下是测试课程: 以下是正在测试的系统:

  • 我有一个包含可重用方法的键类。我尝试用两种方法使用WebElement。他们在一起。我知道失败的是webelement,因为我可以在没有两种方法的情况下对其进行编码,而且效果很好。当调用包含webelement的方法时,如何正确地执行此操作而不会失败?(无此类元素例外) 公开类密钥{ 另一个类使用如下内容:

  • 我需要使用FFMPEG随机选择时间(例如0:10),并将两个连续的帧保存为PNG。 产出: 问题 如何确定下一帧?帧率120/1意味着每秒120帧? 编辑 它能保证下一帧吗?还有其他办法吗?

  • 此代码在控制台中有以下输出: Method1 Method2 Method3 而我希望它是 Method1 Method2 Mock method3 方法3被嘲弄了,那么为什么它没有被调用呢?