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

需要帮助为返回流量流作为输出的函数编写junit测试

钮誉
2023-03-14

我需要帮助在编写一个函数的单元测试,这是返回流量流作为输出。

我试过使用步进验证器,但我想我用错了方法。

需要测试以下功能。

public Flux<List<String>> streamCompletedScansAfterLastSubmit(@PathVariable("username") String username) {
    Flux<Long> interval = Flux.interval(Duration.ofSeconds(5));
    Flux<List<String>> completeScans = Flux.fromStream(Stream.generate(() -> scanService.getCompletedScansAfterLastSubmitForUser(username)));
    return Flux.zip(interval, completeScans).map(Tuple2::getT2);
  }
  public void shouldPublishTheAssessmentStatusOnceFinished() {
    when(scanService.getCompletedScansAfterLastSubmitForUser(Mockito.anyString())).thenReturn(Arrays.asList("Scan1:Success"));
    StepVerifier.create(apiScanController.streamCompletedScansAfterLastSubmit("quays_ka"))
      .expectSubscription()
      .expectNext(Arrays.asList("Scan1:Success"))
      .verifyComplete();
  }

不知何故,服务方法会被调用两次(我使用doAnswer检查了这一点)

共有1个答案

邰博远
2023-03-14

stream.generate(供应商)生成无限的,因此completeCans也是无限的。

由于间隔也是无限的,所以对于模拟服务,这两个间隔的压缩会导致流量,它每5秒发出[“scan1:success”]

相反,您的stepverifier在终止前需要一个非常有限的flux,因此一旦它看到列表的第二次出现,它就会失败。

 类似资料:
  • 需要帮助编写一个cassandra udf来添加/除/乘两个变量。尝试下面的代码,但它似乎不工作。而且我没有在Java的经验,所以可能是我不能调试。感谢你的帮助。

  • 我是堆栈溢出和python的新手,是否可以在类类型函数中返回实用程序函数,然后按类输入对其进行排序?如果您有任何建议或帮助,请告诉我。谢谢 output:File "/tmp/ipykernel _ 28447/2787243890 . py ",第37行显示(utility['Class'] == 'Resi)语法错误:扫描字符串文字时出现EOL

  • 我很难理解以下函数的递归工作流程,以及它如何遍历排列排序数组。 让我感到困惑的一件特别的事情是“返回[nums[:]]”调用在递归函数中的行为。由于第9行再次调用自己,直到“start==2”,它什么时候继续执行第9行之后的行,以及它为哪个递归函数执行这些继续行? 抱歉,如果我的问题有点让人困惑,我最近才开始学习Python,希望更好地了解“return”调用在递归函数中的工作方式。任何建议都将不

  • 需要帮助理解Ansible任务或剧本中Ansible变量执行的工作流序列, 5)playbook中的var_prompt 6)任务中的set_fact 7)playbooks vars_files

  • 编写一个查询以显示staffid、费用代码、专科id、专科名称、会诊日期、患者号和到期日将使用会诊日期+21计算 STAFFID NOT NULL CHAR(2) FIRSTNAME VARCHAR2(20) LASTNAME VARCHAR2(20) 角色VARCHAR2(15) 性别CHAR(1) 日期连接日期 DATELEFT DATE SQL>描述staffspeciality错误: OR

  • 需要帮助使用Mockito和JUnit4为下面的代码编写单元测试,