单元测试 – 如何进行单元测试?

基本上我有两个主要问题:

>你究竟要测试什么?
>你是怎么做到的?

问题是我有几个依赖于数据库连接和/或通信应用程序的应用程序,这意味着大多数测试用例都是集成测试(或者我认为).

大多数类本身都相当简单,但实现通信协议的那些类对于自动化测试很有用,似乎很适合“单元测试”模型.

另一个例子.我开发了I管道结构,支持消费者/生产者模式的多线程支持.当线程读取管道并发现它为空时,它会阻塞,直到写入器写入管道.我应该使用单元测试来测试该类吗?

你如何决定单元测试?

编辑:我的意思是为自动化单元测试编写单元测试.

最佳答案
您单元测试代码的单位.真正的问题是究竟是什么组成了一个单位?

在面向对象的环境中,单元是一个类.一个类,因为对象的行为随对象的状态而变化,因此单独测试方法不会产生最完整的结果.

首先,您需要识别类的不变量.也就是说,对于班级的所有实例而言总是如此.例如.在Fraction类中,不变量可能是分母!= 0.

接下来,您需要确定每种方法的合同,即方法的前后条件.

然后,您可以针对可能出现的每种情况编写测试.因此,对于单个类,您可能最终会使用许多测试方法来测试每种方法可能遇到的各种条件.在每次测试中,您都要确保类的不变量保持不变,并且方法的约定永远不会被破坏.

在某些情况下,例如您提供的示例可能需要在环境中创建其他对象以测试类的条件.在这些情况下,您可以使用模拟对象.

转载注明原文:单元测试 – 如何进行单元测试? - 代码日志