通用扩展方法测试

Car*_*any 3 c# generics tdd extension-methods moq

我有一个非常简单的扩展方法,它与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;
}
Run Code Online (Sandbox Code Playgroud)

哪种方法可以测试这种方法?我试过模拟IComparable实例无济于事...我使用NUnit和Moq,但我真的是TDD中的菜鸟.

goe*_*ing 5

没有必要嘲笑任何东西.您可以使用任何IComparable对象,如整数或字符串.
看看这个:

[TestMethod]
public void YourTestName()
{
    Assert.IsTrue(2.Between(0, 5));
    Assert.IsFalse("a".Between("b", "d"));
}
Run Code Online (Sandbox Code Playgroud)

把事情简单化.

顺便说一下,我会将该方法重命名为IsBetween而不仅仅是Between.我觉得它更流利.

[TestMethod]
public void YourTestName()
{
    Assert.IsTrue(2.IsBetween(0, 5));
}
Run Code Online (Sandbox Code Playgroud)