UnitTest JSONObject显示为null

wac*_*k93 9 android json unit-testing

我遇到了与JSONObject连接的问题.

@Test
public void toUrlTest() throws JSONException {
    String url;

    JSONObject json = new JSONObject();

    json.put"id", 1);
    json.put("email", "test@hotmail.com");
    url = JSONParser.toURLString(json);

    assertEquals("id=1&email=test@hotmail.com", url);

}
Run Code Online (Sandbox Code Playgroud)

问题是当我调试此测试时,它显示没有任何内容放到json对象上.

json ={org.json.JSONObject@826}"null"

我检查了一切,我不知道为什么会发生这种情况.JSONObject在app中运行良好.它只在测试时发生.

PS.我在build.gradle中添加了这个

 testOptions {
        unitTests.returnDefaultValues = true
        } 
Run Code Online (Sandbox Code Playgroud)

mm2*_*001 8

TL; Yair Kukielka的DR版本的响应......(谢谢!)

build.gradle按照建议将其添加到您的文件中

testCompile "org.json:json:20140107"
Run Code Online (Sandbox Code Playgroud)

这将取代存根的Android库与在桌面上工作的库.


Yai*_*lka 6

Android中有两种类型的单元测试:

  • 仪表化(慢,你需要一个设备或模拟器)
  • 非检测或本地(快速,您可以在计算机上的JVM上执行它们)

如果您的单元测试使用Android SDK提供的类(如JSONObject或Context),则必须在以下选项中进行选择:

  • 使您的测试成为仪器化测试

要么

这篇文章中,您有关于此主题的更多有用信息.

顺便说一句,在帖子中你将学习一个技巧,将你的JSONObject单元测试转换为你可以在你的本地JVM上执行的非检测测试(没有Roboelectric)