这是我想要进行单元测试的函数。我正在 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/