【发布时间】: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