Hãy nói rằng tôi ví dụ có lớp này mà tạo ra con số Fibonacci:C#: Bạn kiểm tra phương thức IEnumerable.GetEnumerator() như thế nào?
public class FibonacciSequence : IEnumerable<ulong>
{
public IEnumerator<ulong> GetEnumerator()
{
var a = 0UL;
var b = 1UL;
var c = a + b;
while (true)
{
yield return c;
c = a + b;
a = b;
b = c;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
Sau đó tôi có thể viết một bài kiểm tra đó đảm bảo rằng các n số đầu tiên trong dãy là chính xác.
[Test]
public void GetEnumerator_FirstFifteenNumbers_AreCorrect()
{
var sequence = new FibonacciSequence().Take(15).ToArray();
CollectionAssert.AreEqual(sequence, new[] {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610});
}
Khi tôi kiểm tra bảo hiểm, tôi sẽ thấy rằng phương thức IEnumerable.GetEnumerator() chưa được kiểm tra và mức độ phù hợp của tôi sẽ thấp hơn mức cần thiết. Đủ công bằng. Nhưng làm thế nào tôi nên kiểm tra phương pháp đó?
Bạn thường xử lý vấn đề này như thế nào?
hmm, ngoài sự tò mò làm thế nào để bạn kiểm tra phạm vi kiểm tra? Âm thanh như một tính năng thú vị. – Ian
Vâng, tôi cũng tự hỏi về điều đó, hehe. Nhưng tìm thấy một nút cho nó trong TestDriven.Net, đó là khá awesome bằng cách này. Nếu bạn chưa thử nó, bạn nên! Sau khi cài đặt, bạn có thể nhấp chuột phải vào giải pháp của bạn (trong trình khám phá giải pháp) và chọn Kiểm tra với -> Mức độ phù hợp. Dễ dàng như vậy :) – Svish
Nếu bạn có phiên bản VS Team System, các công cụ kiểm tra bao gồm một công cụ bảo hiểm là tốt, mà bạn có thể kích hoạt với TestDriven.Net hoặc trong giao diện thường xuyên. Nếu không, nếu bạn google kiểm tra các công cụ bảo hiểm cho Visual Studio, có một số ra khỏi đó. NCover có thể được sử dụng nhiều nhất. – McMuttons