我只是在尝试使用 tdd 和 nunit,并编写了以下测试,针对我的 CachedEnumerable<T>
类:
[Test]
public void CanNestEnumerations()
{
var SourceEnumerable = Enumerable.Range(0, 10).Select(i => (decimal)i);
var CachedEnumerable = new CachedEnumerable<decimal>(SourceEnumerable);
Assert.DoesNotThrow(() =>
{
foreach (var d in CachedEnumerable)
{
foreach (var d2 in CachedEnumerable)
{
}
}
});
}
嵌套的for循环会被优化掉吗?因为它们什么也没做(在循环之后,
CachedEnumerable
从未被使用)。还有没有其他情况下,测试代码可能会被优化掉?
如果是这样,我该如何确保测试代码实际运行?