【问题标题】:Json Request Response Test CasesJson 请求响应测试用例
【发布时间】:2015-09-10 23:29:46
【问题描述】:

我正在为一个将 JSON 作为帖子正文并使用 JSON 帖子正文进行响应的项目​​编写单元测试用例。

要进行多项检查,例如:

  1. 是否指定了所有必填字段?
  2. 系统在出现空值或字段缺失时表现如何?
  3. 对于内部 json 中的 null 值,系统表现如何?
  4. 数值属性的边界情况。

对于我最初的一组单元测试用例,我手动编写了多个 json,将它们存储为平面文件并运行测试用例。对于这么多微服务,这不会很好地扩展。

所以我想用代码来完成大部分工作。所以在我的初始阶段,我想在给定骨架的情况下生成 json 对象的所有排列。比如删除字段、使字段为空等。

我正在使用 Java 1.8,Jackson 更快的 xml,jersey 来实现这一点。我在这里被困在多个方面:

  1. 由于这是一个非常常见的用例,我是否不知道任何特定的工具?
  2. Jackson JsonNode equals() 方法是否会识别字段值为 null 或字段缺失的不等式。
  3. 对内部 json 节点有什么影响?

【问题讨论】:

  • 你能澄清一下你的确切要求是什么,直到你能达到多少要求,等等。从帖子中无法确定确切的要求。
  • 你在这里问了 3 个问题,其中 1 太宽泛了,你应该创建 3 并更准确地展示你尝试过的内容

标签: java json testing jackson jmeter


【解决方案1】:

对于单元测试,您需要在向您的服务抛出随机请求之前定义您的期望。我建议您将问题分解为离散的问题。

  1. 使用例如http://jsonschema.net/#/ 定义架构并使用例如验证架构的所有请求https://github.com/fge/json-schema-validator。这将确保请求在得到处理之前格式正确。

  2. 为处理单个请求的单个方法编写特定的 UNIT 测试以测试特定用例。使用对象构建器来构建和排列测试用例,如图所示,例如在http://blog.jayfields.com/2009/01/most-java-unit-tests-consist-of-class.html

  3. 您可以自动生成一些测试用例。边缘情况和空值总是一个好主意,但您需要先定义您的期望。对于完全随机的单元测试,请阅读Random data in Unit Tests?

  4. 的讨论

您尝试做的更多的是集成测试。验证将有助于清除大多数格式错误的请求,以及关于您的系统如何处理特定请求,您应该在开始编码之前就已经知道答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多