【问题标题】:examples of unit testing methods that are expected to return JSON预期返回 JSON 的单元测试方法示例
【发布时间】:2014-03-22 10:54:37
【问题描述】:

一个单元如何测试一个对象或集合——特别是一个 JSON 数据包? 你只是测试他的结构,键/值对吗?不分价值观??

我要创建一个空集合吗?并比较? 同样的问题适用于任何复杂的对象(查询、结构、数组等)

任何真实示例的帮助将不胜感激。

  • 我刚刚开始使用 TDD,并使用 MXUnit...我不太确定从哪里开始... 这是一个基本测试的示例,

    // Arrange 
        // obj set up - handled in "setup"
    
    // Act 
        var expect = 1;         
        var result = obj.getPersonByID();
        debug( result ); // throws data back to the tester for display
    
    // Assert 
        assertEqual( expect, result, 'Expected #expect#, got #result#.' );
    

【问题讨论】:

  • 你的函数有什么重要的,是 JSON 的内容,还是仅仅因为你正在返回一个 JSON 数据包?如果是前者,您能否使用 deserializeJSON() 将其转换回 CF 结构,这样会更容易测试(例如检查所有预期的键是否存在)
  • 我测试这些的方法是不要在函数定义中设置returnFormat,并像测试任何其他代码一样对其进行测试。如果您需要特定项目的 JSON,如果直接访问 CFC 方法,只需将 returnFormat=json 添加到查询字符串即可。如果您使用的是框架,则可以构建一个为您生成 JSON 的流程。
  • RE:Duncan 的评论 - 我会为每个键编写单独的测试吗?我所做的小阅读,这似乎是规定的方式......每个测试“一个”断言,这是我倾向于的路径。如果有支持/反对的论据,请权衡。

标签: json junit coldfusion sample mxunit


【解决方案1】:

使用以下流程:

  • 创建一个模拟 JSON
  • 使用 DeserializeJSON 将 JSON 反序列化为结构体
  • 使用StructKeyArray 创建一个键数组
  • 遍历数组
  • 断言每个键的名称

参考文献

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多