STRRL
V2EX  ›  问与答

如何以正确的姿势使用 mockito

  •  
  •   STRRL · Jan 23, 2019 · 856 views
    This topic created in 2668 days ago, the information mentioned may be changed or developed.

    背景:本人 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 吗?有没有这方面的书推荐?

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5923 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 83ms · UTC 03:06 · PVG 11:06 · LAX 20:06 · JFK 23:06
    ♥ Do have faith in what you're doing.