Skip to content

Latest commit

 

History

History
19 lines (13 loc) · 974 Bytes

TotW135.md

File metadata and controls

19 lines (13 loc) · 974 Bytes

Tip of the Week #135: Test the Contract, not the Implementation

C++ 中类成员的访问控制有下面的一些级别,类会被客户端代码使用,也会被测试代码使用:

  1. public
  2. protected
  3. private
  4. friend

对于测试代码来说,我们也应该像其它客户端代码一样来使用类,不要采用任何侵入手段去越权访问类的成员。一个类的公开接口就像是一种契约,我们应该测试这种契约,而不是测试类的内部实现细节。

测试用例编写经验:

  1. 测试用例仅仅使用类公开的接口,独立与具体的类内部实现细节
  2. 当公开的接口不足以测试所有的功能,设计专门的额外的测试接口
  3. 也可以酌情公开一些接口来满足测试需求,设计文档需要说明该接口不要用于客户端代码
  4. 也可以设计辅助测试类为类的友元,因而可以访问类的所有的成员
  5. 友元的使用要控制粒度,范围