我正在编写一些简单的C#扩展方法,并撰写单元测试。其中一个扩展方法是重载的,因此我很难想出一个合理的命名约定用于单元测试。
重载方法示例:
重载方法示例:
public static class StringExtensions
{
public static List<string> ToList(this string value, char delimiter)
{
return ToList(value, new[] { delimiter });
}
public static List<string> ToList(this string value, char[] delimiterSet) { .. }
}
如果我想编写两个单元测试,一个测试每个方法,那么你会如何命名这些测试?通常我只会简单地使用:
[TestMethod, TestCategory("Single Method Tests")]
public void ToListTest
但是由于存在同名的两个方法,我很难找到一个好的约定方式。
[TestMethod, TestCategory("Single Method Tests")]
public void ToListTest
[TestMethod, TestCategory("Single Method Tests")]
public void ToListTestOverload
十分糟糕。
[TestMethod, TestCategory("Single Method Tests")]
public void ToListTestWithChar
[TestMethod, TestCategory("Single Method Tests")]
public void ToListTestWithCharArray
基于参数类型的方式更好,但仍然非常糟糕。
有些人可能建议编写一个测试方法来同时测试两个重载方法,但我理想情况下希望每个单元测试方法都与被测方法一一对应,即使这些重载方法当前是链接在一起的。 我不希望测试中做出任何假设,即这些重载方法是链接在一起并且会传递参数。
你会如何解决这个问题?