登录
首页 >  Golang >  Go问答

行为错误的模拟函数仍然可以通过

来源:stackoverflow

时间:2024-04-10 17:57:32 229浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《行为错误的模拟函数仍然可以通过》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我正在为一个依赖于其他函数的函数编写测试。我使用 gomock 库来模拟这些依赖项的行为,这是其中之一:

&mock.UseCaseToDependOn{
    UpdateStatusFuncMock: func(ID data.ID) ([]*ObjectsToReturn, error) {
        return case.in.updateStatusFuncReturnsObjects, case.in.updateStatusFuncReturnsError
    },
},

但是,在代码审查中,我意识到使用状态机模式的 updatestatusfuncmock 模拟函数根据输入返回不合逻辑的数据,但是测试仍然顺利通过。

这对我来说真的很奇怪,因为我相信在这种情况下测试应该失败。

另一方面,如果我提供遵循逻辑的数据,那么:

  • 首先,我需要了解我的测试所依赖的函数的内部行为。这是好事还是坏事?
  • 其次,我认为这样做只会造成误报,因为测试仍然通过具有错误行为的模拟函数。

创建输入和输出必须遵守现有逻辑的模拟函数是否合适?


解决方案


首先,区分白盒测试和黑盒测试很重要。 https://www.geeksforgeeks.org/differences-between-black-box-testing-vs-white-box-testing/

根据您想要做的事情,遵循最好的方法,正如前面的评论所说,它是干净的,通常最好使用假货或存根。

您可以创建一组带有返回错误的存根的测试,以及另一组带有预期输出的测试。

好了,本文到此结束,带大家了解了《行为错误的模拟函数仍然可以通过》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>