【发布时间】:2011-04-06 21:57:52
【问题描述】:
首先,我不得不说,我是嘲笑的新手。所以也许我错过了一点。
我也刚刚开始习惯 TDD 方法。
因此,在我的实际项目中,我正在处理业务层中的一个类,而数据层尚未部署。我想,这将是开始嘲笑的好时机。我正在使用 Rhino Mocks,但我遇到了在编写类本身之前需要了解类的实现细节的问题。
Rhino Mocks 检查所有预期调用的方法是否被实际调用。所以我经常需要知道被测试的方法首先调用了哪个模拟方法,即使它们可以按任何顺序调用。因此,我经常在测试之前编写复杂的方法,因为那时我已经知道方法被调用的顺序。
简单示例:
public void CreateAandB(bool arg1, bool arg2) {
if(arg1)
daoA.Create();
else throw new exception;
if(arg2)
daoB.Create();
else throw new exception;
}
如果我想测试这个方法的错误处理,我必须知道首先调用的是哪个方法。但是我不想在第一次编写测试时被实现细节所困扰。
我错过了什么吗?
【问题讨论】: