代码之家  ›  专栏  ›  技术社区  ›  manuel aldana

莫基托比易思莫克更喜欢?[关闭]

  •  21
  • manuel aldana  · 技术社区  · 14 年前

    最近我切换到了mockito框架,对此我非常满意(另请参见 blog-post )从easymock到mockito的转换非常简单,我设法使测试向下兼容(即测试用例的行为相同)。

    你有没有看到真正的理由或决战标准,让你更喜欢“轻松”而不是“莫基托”?到目前为止,我的代码库工作我不能,但我对你的观点感兴趣。

    4 回复  |  直到 11 年前
        1
  •  22
  •   Lunivore    14 年前

    mockito的开发允许bdd风格的单元测试,即:

    • 给定(运行单元测试的上下文)
    • 当(产生你感兴趣的行为的事件)
    • 然后(你要找的结果)。

    • 鉴于
    • expect(这里是验证的地方)
    • 什么时候?
    • 然后(回去看看你在expect中写了什么,因为这里没有实际的信息)。

    imho可以生成更具可读性的测试,并允许您将运行的上下文(设置模拟)和感兴趣的行为验证等内容分开。以前的模拟框架要求您为每个交互设置期望值,而不管它是否与您在测试中看到的行为方面相关。

        2
  •  7
  •   mlschechter    14 年前

    我对easymock比mockito更熟悉,所以我得做点调查。莫基托有一个 page 这从mockito的角度做了一个明确的比较。

    在我看来,mockito的优点是:

    • 存根与验证的显式分离
    • 匹配器基于hamcrest(junit也支持),而不是自定义api
    • 创建的mock总是“很好”;也就是说,未绑定的方法调用返回干净的数据(如空列表),而不是失败

    easymock有一个非常相似的函数集。mockito的核心区别是基于easymock的那些领域,mockito团队认为这些领域是限制或次优实践。

    从功能的角度来看,这两个产品都不能模拟静态方法(我需要在没有mbeanserver的情况下进行测试),但是在这种情况下,您可以在两个框架的顶部使用powermock。

    我想选择适合你测试要求的样式。

    希望这有帮助!

        3
  •  6
  •   Brandon Yarbrough    14 年前

    mockito现在可能比我上次尝试时要好,但当它将其api更改为与以前的版本不兼容时,它失去了我。升级到最新版本将要求我更改许多现有的单元测试,我认为这是不可接受的。我觉得这对我的需要来说太不成熟和不稳定了。

    不过,这并不意味着它有什么问题。我使用的版本仍然可以正常工作,尽管我已经切换回easymock。

        4
  •  1
  •   Barett ShuftY    11 年前