android - UnitTest JSONObject 显示 null

标签 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);

}

问题是当我调试这个测试时,它显示没有任何东西被放入 json 对象。

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

我检查了所有内容,但不知道为什么会这样。 JSONObject 在应用程序中运行良好。它只在测试时发生。

附言。 我在 build.gradle 中添加了这个

 testOptions {
        unitTests.returnDefaultValues = true
        } 

最佳答案

Yair Kukielka 回复的 TL;DR 版本...(谢谢!)

按照

的建议,将其添加到您的 build.gradle 文件中
testImplementation "org.json:json:20140107"

这会将 stub 的 Android 库替换为可在桌面上运行的库。

编辑 April '22:评论表明这是最新版本:

testImplementation "org.json:json:20180813"

关于android - UnitTest JSONObject 显示 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33595931/

相关文章:

android - 基本 Jetpack Compose Codelab 的 "Cannot find a parameter with this name: items"

javascript - JS树加载时间问题

php - 通过单元测试验证配置文件?

java - Robolectric:在我的案例中运行处理程序的循环程序

android - 在 Android 9 或更高版本中无法从 BroadcastReceiver 启动 Activity

android - 将 Html 内容转换为 pdf 文件

android - 从启动器调用 Activity 和/或服务

python - Django 1.9 JSONField 更新行为

javascript - LocalStorage函数插入、编辑Json

c# - Enterprise Library 日志记录 block 的编程配置