诊断Java代码: 进行记录器测试以正确调用方法 - 编程入门网
g = new Greeter(r);
Sender s = new Sender(r);
Coordinator c = new Coordinator(s, g);
c.start();
c.join();
assertEquals("sayHello();sendFirstMessage();sendSecondMessage();
sayGoodbye();",r.playBack());
}
由于我们已经将消息保存为简单的 String 型变量 s,检查 playBack 的内容的测试就很简单:只要写出正确的 String ,然后与之对照检查就可以了。 另一方面,如果我们已经使用了一个较复杂类型的对象,我们不得不为这些对象中的每一个都构造一个同样的实例,并重述所有记录过的实例,检查它们之中每一个的等同性。另外,这还需要我们为记录过的对象的每个类写一个 equals 方法。 像这样的话,一次测试要做很多工作。我不知道您怎么样,但是我宁愿把时间花在写更多较简单的测试上(设计代码使得它们更容易),而不愿为我的测试写基础结构的代码。 这两种方法间的一个折衷是制作另一个 Recorder ,它可以存储非常复杂的数据,但有一个简单的 toString 方法可用来测试,就如上面提到的那个。于是,较复杂的数据可用于其他的测试,检查调用序列的详细属性。 准备好测试 用 Recorder 进行测试的思想可应用到许多类型的测试中: 除检查调用的简单顺序之外,记录器可在分布环境中使用,确保通信中不同的不变量在相互通信过程中保持不变。 记录器也可用来和 GUI 一起确保响应各种预期的用户操作。 简而言之,记录器提供了一种测试组件集合体的方法,它比大多数单元测试覆盖的范围大,但还是比整个系统小。我希望您能和我一样,觉得它有用。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |