首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当一个方法调用其他已经过单元测试的方法时,是否应该使用mock?

当一个方法调用其他已经过单元测试的方法时,是否应该使用mock,这个问题的答案并不是绝对的,而是取决于具体的情况。下面是对这个问题的解答:

在软件开发中,单元测试的目的是为了验证各个方法的功能是否正确。当一个方法调用其他已经过单元测试的方法时,如果目标是测试当前方法内的逻辑,而不是被调用方法的逻辑,那么可以考虑使用mock来模拟被调用方法的行为。

使用mock的好处是可以减少对被调用方法的依赖,从而使测试更加独立和可控。通过mock,我们可以定义被调用方法的返回值或抛出特定的异常,以便模拟各种情况进行测试。这样可以避免被调用方法内部的错误或其他外部因素对当前方法的测试造成影响。

然而,使用mock也有一些限制和注意事项。首先,mock只能模拟已经过单元测试的方法,如果被调用方法还没有进行单元测试,那么使用mock可能会导致测试不准确。其次,使用mock时需要仔细考虑被调用方法的返回值和异常情况,以保证模拟的行为符合测试的需求。此外,使用mock过多可能会导致测试代码的可读性和可维护性下降,因此需要在必要性和实际情况之间做出权衡。

总的来说,是否应该使用mock取决于具体的测试需求和场景。在设计和编写测试用例时,我们应该根据实际情况决定是否使用mock,并合理权衡依赖性、可控性和可维护性等因素。

相关搜索:C# Xunit和Moq - Mock类的一个方法,也可以调用其他实基类方法当使用synchronized()从另一个类调用notify()方法时,该方法未调用formExcel VBA -当被调用的方法已经调用了另一个方法时,将控制返回到调用方法当一个方法调用另一个方法并且两个方法都使用DbContext时,处理DbContext的正确方法Python模块pytest-mock当一个类调用另一个类实例时,如何测试方法调用参数?当从Java HashMap获取一个整数值时,是否需要调用intValue()方法?当重载所有父类的方法时,我应该使用多态性吗?“集合已修改错误”,但仅在按键时使用相同的方法调用,而不是在单击按钮时使用相同的方法调用当字段列表非常大时,使用javascript中的if条件计算字段是否已填充的有效方法当没有有效的匹配器时,使用Mockito是否有办法在方法调用时抛出异常是否仅当子类被强制转换为父类时才调用子类的方法?使用pytest,当方法提示输入另一个输入并且处于连续循环中时,如何测试输入是否导致预期的方法调用?Java方法在使用Swing时-是否可以在同一个类中的另一个事件方法中调用事件方法?检查对方法的调用是否是从使用Moq的另一个方法发出的当一个StringBuilder追加另一个时,“不适当的阻塞方法调用”当一个链接被点击时,除了使用的方法'scroll top‘之外,还有什么替代方法吗?当给定的类名为string时,如何调用另一个类中的方法当函数的参数是一个对象时,为什么不能使用Typescript推断方法调用呢?当使用linq创建超过2100个参数的searchPredicate时,是否有解决方法?当从另一个ViewController类调用方法时,Xcode查找nil变量,而不应该是nil变量
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 玩花招的PowerMock

    当我们面对一个遗留系统时,常见的问题是没有测试。正如Michael Feathers在Working Effectively with Legacy Code一书中对“遗留代码”的定义。他将其简单归纳为“没有测试的代码”。真是太贴切了!正是因为没有测试,使得我们对遗留代码的任何重构都有些战战兢兢,甚至成为开发人员抵制重构的借口。从收益与成本的比例来看,对于这样的系统,我一贯认为不要盲目进行重构。因为重构的真正适用场景其实是发生在开发期间,而非维护期间。当然,提升自己的重构能力,尤其学会运用IDE提供的自动重构工具,可以在一定程度上保障重构的质量。然而,安全的做法,还是需要为其编写测试。

    02

    单元测试以及JUnit框架解析

    我们都有个习惯,常常不乐意去写个简单的单元测试程序来验证自己的代码。对自己的程序一直非常有自信,或存在侥幸心理每次运行通过后就直接扔给测试组测试了。然而每次测试组的BUG提交过来后就会发现自己的程序还存在许多没有想到的漏洞。但是每次修改好BUG以后还是怀着侥幸心理,认为这次不会有bug了。然后又一次自信地提交,结果又败了。因为这样反复几次后。开发者花在找BUG和修复BUG的这些时间加起来已经比他开发这个模块花的时间还要多了。虽然项目经理已经预留了修改BUG和单元测试的时间。但是开发者却习惯性地在写好代码后就认为任务完成了。 然后等问题出来了bug改了很多次还是修复不了的时候才和项目经理说“我碰到预想不到的问题,可能要延期发布我的代码“。如果这个项目不可延期,痛苦的加班就无法避免了。

    02

    go test 测试用例那些事(二) mock

    关于go的单元测试,之前有写过一篇帖子go test测试用例那些事,但是没有说go官方的库mock,很有必要单独说一下这个库,和他的实现原理。 mock主要的功能是对接口的模拟,需要在写代码的时候定义抽象很多接口,有时为了能方便go test可能会多写一些冗余代码,但这些工作会让你的单元测试更灵活。特别是逻辑比较复杂的时候,上层要调用其他层的方法进行单元测试,会让单元测试越写越麻烦,越写越复杂,这也是很多人不喜欢写单元测试的原因。使用mock模拟底层的接口,能让你只关注上层需要测试的逻辑,而不用为了测试一个功能,写一堆调用的底层的相关的测试逻辑。

    02
    领券