0
在我公司的代碼庫中,我們有一堆用於IEnumerable
對象的擴展方法。NUnit是否提供了一個多枚舉幫助器?
此方法的一些枚舉項的給定參數多次。
當然,我們不希望所以我要解決這些方法。
但首先我想寫一些單元測試來檢測多個枚舉。
我來的IEnumerable
提供枚舉計數信息的實現:
public class TestableEnumerable<T> : IEnumerable<T>
{
readonly T[] values;
public TestableEnumerable(T[] values)
{
this.values = values;
}
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
public IEnumerator<T> GetEnumerator()
{
EnumerationCount++;
foreach (var value in values)
{
yield return value;
}
}
public int EnumerationCount { get; private set; }
}
測試是這樣的:
[TestFixture]
public class EnumerableExtensionsTests
{
TestableEnumerable<int> sut;
[SetUp]
public void SetUp()
{
sut = new TestableEnumerable<int>(new[] { -10, 0, 10 });
}
[Test]
public void Append_Enumerate_Once()
{
var result = sut.Append(1).ToArray();
Assert.That(sut.EnumerationCount, Is.EqualTo(1));
}
}
是否NUnit的提供任何機制來更輕易做到這一點?