我使用 TDD 编写了一个类,其中包含一个方法(被测方法),该方法将一个简单的值对象作为参数(range
)。
代码:
被测方法如下所示:
public List<string> In(IRange range)
{
var result = new List<string>();
for (int i = range.From; i <= range.To; i++)
{
//...
}
return result;
}
此外,我有一个单元测试来验证我的测试方法:
[TestMethod]
public void In_SimpleNumbers_ReturnsNumbersAsList()
{
var range = CreateRange(1, 2);
var expected = new List<string>() { "1", "2" };
var result = fizzbuzz.In(range);
CollectionAssert.AreEqual(expected, result);
}
private IRange CreateRange(int from, int to)
{
return new Fakes.StubIRange()
{
FromGet = () => { return from; },
ToGet = () => { return to; }
};
}
问题:
我读过 Roy Osherove 关于单元测试的书(“单元测试的艺术”)。在那里他说
“外部依赖项(文件系统、时间、内存等)应该被存根替换”
他所说的外部依赖是什么意思?我的值对象(范围)是否也是应该伪造的外部依赖项?我应该伪造一个类的所有依赖项吗?
有人可以给我一个建议吗