我目前正在研究一个模块,它接受我们的业务对象之一并将该对象的json表示返回给调用者.由于我们环境的限制,我无法使用任何现有的json编写器,因此我编写了自己的json编写器,然后业务对象编写器使用它来序列化我的对象.json编写器以类似于此的方式进行测试
@Test
public void writeEmptyArrayTest()
{
String expected = "[ ]";
writer.array().endArray();
assertEquals(expected, writer.toString());
}
Run Code Online (Sandbox Code Playgroud)
这是唯一可管理的,因为每个指令产生的输出很小,即使我一直觉得必须有更好的方法.
我现在面临的问题是为对象编写器模块编写测试,其中输出更大,更易于管理.在预期的字符串中拼写错误的风险使我的测试变得非常糟糕,从长远来看,以这种方式编写代码似乎既愚蠢又无法管理.我一直觉得我想写测试以确保我的测试表现正常,这种感觉让我担心.
这样做的更好方法是什么?
从技术上讲,部署代码的环境与开发代码的环境不同,因此我将使用现有的JSON读取器/编写器来测试您创建的代码.如果您正在使用maven,您甚至可以设置您选择用于"测试"的JSON包的范围,以便它不会包含在实际构建中.
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090911</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
或者,您可以从JSON编写器继承您的单元测试.通过继承,您可以测试所有受保护和私有内部位,而不是检查实际的String输出.
归档时间: |
|
查看次数: |
847 次 |
最近记录: |