Java 我应该为下面的函数编写哪些单元测试用例?另外,如何在函数中提供示例JSONobject作为参数?
下面是我想进行单元测试的函数。我是在android中写这篇文章的,因为JSONObject是一个android类,所以我不能初始化,我只能模拟,但我还想测试有样本JSON的情况,它提供了正确的结果或异常(如果样本JSON不正确)Java 我应该为下面的函数编写哪些单元测试用例?另外,如何在函数中提供示例JSONobject作为参数?,java,android,unit-testing,junit,android-testing,Java,Android,Unit Testing,Junit,Android Testing,下面是我想进行单元测试的函数。我是在android中写这篇文章的,因为JSONObject是一个android类,所以我不能初始化,我只能模拟,但我还想测试有样本JSON的情况,它提供了正确的结果或异常(如果样本JSON不正确) public List parseAndReturnGithubRepositorySearchResponse(JSONObject响应)引发异常{ List githubRepositorySchemas=new ArrayList(); 如果(响应有(“项目”))
public List parseAndReturnGithubRepositorySearchResponse(JSONObject响应)引发异常{
List githubRepositorySchemas=new ArrayList();
如果(响应有(“项目”)){
JSONArray items=response.getJSONArray(“items”);
对于(int i=0;i
您的测试用例可以是:
1.使用单个项目JSON进行测试,断言该对象具有相同的属性
2.多项目JSON,检查对象的属性
3.在没有“items”的情况下进行测试,并查看您的方法是否引发异常
4.玩弄对象的各个关键点。我注意到您没有对对象使用类似的has“key”检查。这是单元测试实际上可以暴露代码中错误的一个领域
编辑:您可以通过构造函数构建JSONObject并向其添加对象,就像映射一样。查一查
我不建议编写此代码。很多解析器(Gson、Moshi、Jackson)都是免费的
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;
}