我是嘲笑的新手,我为最佳实践做了大量工作,但到目前为止,我找不到任何令人满意的资源,所以我想把它放进去。
我尝试了很少的测试用例并且有疑虑:
您是否为每个方法(公共私有等)编写了单独的单元测试,并模拟在此方法中调用的其他方法调用,或者只测试公共方法?
在测试一个没有返回数据库插入的方法时,是否可以在最后验证stubbed方法的调用?
请添加其他必须知道的做法。
答案 0 :(得分:1)
有许多级别的测试。单元测试对于集成测试具有更细的粒度,您应该单独研究。遗憾的是,这仍然是软件工程行业中一个非常年轻的领域,因此术语以不合意的方式混合在一起。
对于单元测试,您应编写测试,以确定类的行为是否符合预期。一旦你完成了所有这些测试,你应该发现任何私有方法都会被测试,因此不需要直接测试私有方法。如果您只测试行为,您应该发现您的测试永远不需要改变,尽管被测试的课程可能会随着时间的推移 - 您当然可能需要增加测试数量以补偿从不更改现有测试
每个类在设计良好时,应该最少使用其他类(协作者)。那些被模拟的协作者经常实现数据库访问等基础设施。警惕测试协作,因为这与更大的系统测试密切相关 - 模拟协作者不仅可以让您的单元测试知识不仅<强>行为,还包括如何运作是一个不同的主题。
很抱歉模糊不清,但你正在着手一个大话题,我想简短一点。