单元测试 – 单元测试公共方法时,是否可以使用其他公共方法进行验证

我正在尝试为我尚未实现的Queue类提供一个测试用例.在尝试编写testEnqueue方法的代码时,除了使用size()或dequeue()之外,我找不到验证方法.

是否可以使用其他公共方法(例如:size / dequeue)来验证同一类的公共方法(入队)的测试用例?

最佳答案
据我所知,你在这里看到了经典的鸡和蛋问题 – 如何使用b()测试a()并验证其行为,然后使用a()测试b().从理论上看,如果它们都不正确,那么测试可能仍然会通过……这就像使用JUnit测试JUnit一样.

但是,如果您将代码视为黑盒(在执行TDD时就是这种情况)并且您只是编写测试来为您的类/单元提供一些输入并验证输出,那么这种方法没有任何问题.只记得测试所有典型案例和角落案件/边境条件 – 如果它们符合您的业务预期,可能会出现什么问题?

转载注明原文:单元测试 – 单元测试公共方法时,是否可以使用其他公共方法进行验证 - 代码日志