Android使用Mockito访问resources中的文件

背景

在我们使用Mockito写Unit Test代码的时候,经常需要造各种mock数据。但是有些情况我们需要mock的数据很大并且复杂。手动造数据的方式就不太适合了,可以考虑换一种思路

思路

在平时开发是,我们经常是从后端(backend)发送请求,拿到json数据之后展示到界面(UI)上。介于此操作上,我们完全可以在数据请求时,将backend返回的json数据保存在本地的一个File中,通过读取此File中的json数据,然后通过Gson将json数据转换为JsonObject。最后使用此JsonObject进行 Mock test

做法

/src/test/ 文件夹下创建 resources 文件夹,如下所示:

这里写图片描述

读取resources中的json流数据
@Test
    public void accessJsonInResources() {
        ClassLoader loader = ClassLoader.getSystemClassLoader();

        try {
            String json = Files.lines(Paths.get(loader.getResource("data.json").toURI()))
                    .parallel()
                    .collect(Collectors.joining());

            Gson gson = new Gson();
            CourseNodeWrapper courseNodeWrapper = gson.fromJson(json, CourseNodeWrapper.class);
            Object lastKey = courseNodeWrapper.getLastKey();

            System.out.println("json is " + json);
            System.out.println("lastKey is " + lastKey);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
    }

参考链接

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mockito是一个流行的Java测试框架,用于编写单元测试和集成测试。它提供了简便的方式来创建和操作模拟对象,以模拟外部依赖,从而使测试变得更加可靠和可控。 在Android开发Mockito可以用于编写单元测试来模拟Android组件、外部库或网络请求等。使用Mockito,您可以创建虚拟的对象,并定义它们在测试的行为,以便在不需要真实依赖的情况下进行测试。 以下是一个简单的示例,展示了如何使用MockitoAndroid进行单元测试: ```java // 导入Mockito库 import static org.mockito.Mockito.*; // 创建一个模拟对象 MyDependency mockDependency = mock(MyDependency.class); // 定义模拟对象的行为 when(mockDependency.doSomething()).thenReturn("Mocked result"); // 在被测试的类使用模拟对象 MyClass myClass = new MyClass(mockDependency); String result = myClass.methodUnderTest(); // 验证模拟对象的方法是否被调用 verify(mockDependency).doSomething(); // 断言结果是否符合预期 assertEquals("Mocked result", result); ``` 在这个例子,我们使用Mockito创建了一个名为`mockDependency`的模拟对象,并定义了它的行为。然后,在被测试的类`MyClass`使用了这个模拟对象,并对其进行了验证和断言。 Mockito还提供了其他强大的功能,如参数匹配、回调函数、部分模拟等。您可以参考Mockito官方文档和示例代码,深入了解其更多用法和功能。 希望这个简单的介绍能够帮助您了解如何在Android开发使用Mockito进行单元测试。如果您有更多问题,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值