V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
STRRL
V2EX  ›  问与答

如何以正确的姿势使用 mockito

  •  
  •   STRRL · 2019-01-23 19:47:57 +08:00 · 532 次点击
    这是一个创建于 1937 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:本人 spring curd 程序员,平常在写测试的时候,都是拍脑袋想一个测试用例,然后手写 expected,然后和实际运行结果 actual 进行比较,这么来测的。 平常的时候一般有 bean 就直接 autowird 进来了

    今天在写测试的时候,有一个 bean 不太好注入。然后想到了当初没怎么研究的 mockito,一顿 when().thenReturn()操作以后,达到效果了

    完事了以后发现,这个东西这么用好像不是正确的使用方式,再仔细一看,mockito 可以记录行为 behavior,然后再 verify()。

    官方给的示例是调用了一次被 mock 的对象的方法 A,然后再 verify 一次这个方法 A 确实被调用了。我一脸黑人问号,方法 A 被调用已经明确的写在测试类里了,肯定是被调用了,没有看明白 verify 有什么意义。。

    而且被 mock 的类里的方法也不会执行的,code coverage 咋算?
    啊 说了这么多总结一下:
    我现在使用 mockito 的方式是:mock 的对象不是被测试的对象,mockito 相当于只提供一个 fake value。
    但是看样子 mockito 的正确使用方式是:mock 一个被测试的对象,然后对这个对象进行各种操作,然后 verify()历史记录..?

    求大佬点明。。

    另:在设计时如何考虑到可测试性? TDD 吗?有没有这方面的书推荐?

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1046 人在线   最高记录 6547   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:17 · PVG 06:17 · LAX 15:17 · JFK 18:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.