2.13 部分mock

作者: 孙兴斌 | 来源:发表于2016-12-27 17:39 被阅读37次

有时候只需要mock部分方法,这时候可以用new Expectations(object),object可以是实例,也可以是class对象。在replay阶段,如果在Expectation中没有进行record,则会调用原有代码。

@Test
public void partiallyMockingASingleInstance() {
  final Collaborator collaborator = new Collaborator(2);

  new Expectations(collaborator) {{
     collaborator.getValue(); result = 123;

     // 静态方法也可以
     Collaborator.doSomething(anyBoolean, "test");
  }};

  // Mocked:
  assertEquals(123, collaborator.getValue());
  Collaborator.doSomething(true, "test");

  // Not mocked:
  assertEquals(45, new Collaborator(45).getValue());
}
  • Note:上面的代码中没有出现@Mocked注解

没有record的方法也可以verify,

@Test
public void partiallyMockingA() {
  final Collaborator collaborator = new Collaborator(123);

  new Expectations(collaborator) {};
  
  int value = collaborator.getValue(); 
  collaborator.simpleOperation(45, "testing", new Date());

  // 没有record也可以verify
  new Verifications() {{ c1.simpleOperation(anyInt, anyString, (Date) any); }};
}

另一种实现部分mock的方法:同时标注@Tested和@Mocked。

相关文章

  • 2.13 部分mock

    有时候只需要mock部分方法,这时候可以用new Expectations(object),object可以是实例...

  • spy

    部分mock 在测试过程中,有个类的部分方法可能需要实际调用,而某些方法则是被mock的,也就是部分mock的场景...

  • Mock简明文档

    Mock简明文档 Mock.mock() Mock.mock( requestUrl?, requestType?...

  • 试试

    2.13

  • mockjs

    https://github.com/nuysoft/Mock/wiki/Mock.mock() 常用方法Mock...

  • 使用 Mockjs 模拟数据

    Mock 数据 Mock 在 vue 中的使用 使用npm下载mock 2.使用 mock 在 mock 文件夹下...

  • 高手都这么给 Spring MVC 做单元测试!

    本章节主要讲解以下两部分内容: 1、Mock 测试简介 2、测试用例演示 一、Mock 测试简介 1、什么是 mo...

  • Mock那些事儿(1)

    1、 mock翻译过来有模拟的意思。mock是辅助单元测试的一个模块。它允许用模拟对象替换你的系统的部分,并对它们...

  • Contacts(TableViewController)报错总

    1. mock网络问题 问题:mock网络的JSON数据无法获取 提示:mock请求出错:mock....777...

  • iOS单元测试资料收集

    mock 中文资料 官方原版教程,开始mock mock3 API 参考

网友评论

    本文标题:2.13 部分mock

    本文链接:https://www.haomeiwen.com/subject/jedevttx.html