java - 我应该为以下功能编写哪些单元测试用例?另外,如何提供示例 JSONobject 作为函数中的参数?

标签 java android unit-testing junit android-testing

这是我想要进行单元测试的函数。我正在 android 中编写此内容,因为 JSONObject 是一个 android 类,所以我无法启动,我只能模拟,但我也想测试有示例 JSON 并且它提供正确结果或异常的情况(如果示例不正确) JSON)

public List<GithubRepositorySchema> parseAndReturnGithubRepositorySearchResponse(JSONObject response) throws Exception {
        List<GithubRepositorySchema> githubRepositorySchemas = new ArrayList<>();
        if (response.has("items")) {
            JSONArray items = response.getJSONArray("items");
            for (int i = 0; i < items.length(); i++) {
                JSONObject repoObj = items.getJSONObject(i);
                githubRepositorySchemas.add(new GithubRepositorySchema(
                        repoObj.getString("name"),
                        repoObj.getBoolean("private"),
                        repoObj.getString("description"),
                        repoObj.getString("language"),
                        repoObj.getInt("forks_count"),
                        repoObj.getInt("open_issues"),
                        repoObj.getInt("watchers")
                ));
            }
        } else {
            throw new JSONException("Incorrect Json");
        }

        return githubRepositorySchemas;
    }

最佳答案

您的测试用例可以是: 1.使用单个项目JSON进行测试,断言该对象具有相同的属性 2. 多项目JSON,检查对象的属性 3. 在没有“items”的情况下进行测试,看看你的方法是否抛出异常 4. 玩弄对象的各个键。我注意到您没有对对象使用类似的 has"key"检查。这是单元测试实际上可以暴露代码中的错误的一个领域。

编辑:您可以通过构造函数构建 JSONObject 并向其中添加对象,就像 Map 一样。查一下。

我不建议编写这段代码。有很多解析器(Gson、Moshi、Jackson)可以免费执行此操作。

关于java - 我应该为以下功能编写哪些单元测试用例?另外,如何提供示例 JSONobject 作为函数中的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58776498/

相关文章:

java - 没有数据库的 Hibernate/JPA

c# - 最小起订量设置未返回预期值

java - 数据集 <行> 和 JavaRDD <行> : how to eliminate the header

java - Spring Security hasRole() 不起作用

java - 计算java web客户端发送和接收的字节数

android - 具有两种功能的动态按钮 ANDROID

unit-testing - 将单元测试保存在 D 中的单独文件中

java - 更新 JOptionPane 以反射(reflect)组件状态更改

java - 如何检查 3D 对象是否与 OpenGL ES 2 中的射线相交 - Android

java - 应用程序没有响应