我有一个非常简单的扩展方法,它受 IComparable 实例的限制:

public static bool Between<T>(this T comparable, T min, T max) where T : IComparable<T>
{
    return comparable.CompareTo(min) >= 0 && comparable.CompareTo(max) <= 0;
}
哪种方法是测试此方法的正确方法?我尝试模拟 IComparable 实例无济于事......我使用 NUnit 和 Moq,但我真的是 TDD 的菜鸟。

最佳答案

在 Moq 中尝试以下操作。这将测试值实际上在提供的值之间的情况。

var mock = new Mock<IComparable<string>>();
mock.Setup(x => x.CompareTo("a")).Returns(1).Verifiable();
mock.Setup(x => x.CompareTo("z")).Returns(-1).Verifiable();
Assert.IsTrue(mock.Object.Between("a", "z"));
mock.Verify();

您可以相当快速地修改它以测试负面情况

关于c# - 通用扩展方法测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5516199/

10-13 06:47