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

缺少对...的1个调用在

康恩
2023-03-14

我有一个测试,它正在测试一个Spring@Service类。这个服务类autoworitory在一个dao@存储库中。dao还在一个类中autowires以提供额外的功能。我想模仿dao中的调用,所以我有如下内容:

@DisplayName("Tests for ...")
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class MyServiceTest
{
    @Injectable
    TheRepository myDao;

    @Tested(fullyInitialized = true)
    TheService myServiceUnderTest;

    @Nested
    @Tag("...")
    @DisplayName("Tests for method: ...")
    class TestClassContainer {
        @Test
        public void test1() {
            IAnalysisDataScenario data = new CommonAnalysisDataScenario();
            new Expectations() {{
                myDao.nameExists(anyString); result = data.mockedNameExists();
                ...
            }};

            Map<String, Object> result = myServiceUnderTest.getAnalysis(data.getName(),data.getId());
            assertTrue(!result.isEmpty());
        }
    }
}

服务中对getAnalysis的调用调用dao方法nameExists,我想从Expects块中的mockedNameExists返回结果,但我不知道我做错了什么。

共有1个答案

濮彬
2023-03-14

我明白这件事的问题所在了。错误消息现在有了意义。在这个特定的测试中,缺少调用的方法实际上不会被调用,因为测试基于参数采用的代码路径。因此,预期块必须只包含实际将要执行的代码的模仿行为。现在我明白了

 类似资料:
  • 我无法通过错误: 我检查了几个教程,但似乎没有什么不同于我的代码。我唯一能想到的是Python3.3需要不同的语法。 如果我理解正确,会自动传递给构造函数和方法。我做错了什么?

  • 诚然,我对JMockit是新手,但出于某种原因,我在模仿System.getProperties()时遇到了麻烦。感谢以下帖子的帮助: https://stackoverflow.com/questions/25664270/how-can-i-partially-mock-the-system-class-with-jmockit-1-8?lq=1 我可以使用JMockit 1.12成功地模拟S

  • 我正在学习python。我创建了一个包含2个方法的类可视化工具。现在我想在第二个方法中调用第一个方法。我读到我必须使用self: 这很有效。现在我添加了其他参数: 我从我的调用它: 现在我得到一个错误: 我检查了,参数3在那里,参数序列是相同的。我认为它与自我冲突。 我怎样才能解决这个问题?我的类中是否需要init方法? 编辑:在我的主页上:

  • 问题内容: 我是python新手,碰壁了。我遵循了一些教程,但无法克服错误: 我检查了一些教程,但似乎与我的代码没有什么不同。我唯一能想到的是python 3.3需要不同的语法。 主要技巧: 泵类: 如果我正确理解,“自我”将自动传递给构造函数和方法。我在这里做错了什么? 我正在将Windows 8与python 3.3.2一起使用 问题答案: 你需要在此处实例化一个类实例。 采用 小例子

  • 我尝试在谷歌中找到解决方案,但谷歌中的所有解决方案都不适合我,也许在这里我得到了正确的答案。 我有以下代码: 我得到了这个错误: 回溯(最后一次调用):文件“位置文件”,第42行,在g=gui_main()文件“位置文件”的第26行,在init btn_next=按钮(self.win_about,text=“next”,fg=“red”,command=gui_main.screen_menu(

  • 请指出我做错了什么,我是新的编码。 1.第一个.py文件: 2.second.py档案 当我运行second.py文件时,得到的错误是Logging.Log.debug(“我处于调试模式”)