c#单元测试-重载方法测试的命名约定
|
我在针对单元测试的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
基于参数类型更好,但仍然很糟糕。
有人可能建议写一个针对这两种重载的测试方法,但理想情况下,我希望与单元测试和方法建立1:1关系,即使重载当前是链式的。我不希望在测试中做出任何假设,认为重载是链接和传递的。
您将如何处理?
没有找到相关结果
已邀请:
3 个回复
茬贺努充尽
编写测试的一种方法是拥有三种测试方法:
但是,有一种更好的测试方法可以指定Stack类的行为。然后的想法是,您在类行为和测试方法之间具有一对一的映射。因此,一种行为是在空堆栈上的IsEmpty返回true。另一个是推入一个元素会使堆栈不为空。然后,我将根据以下简单的英语句子,以Arrange / Act / Assert格式编写测试,并以以下格式指定这些行为:
因此,对于上述行为:
我鼓励您考虑尝试在上述方法上进行测试的行为,然后将这些行为映射到测试。例如:
更多信息在这里
铰齐插
和
但也许:
和
刷遍派戳