【发布时间】:2020-08-05 01:20:48
【问题描述】:
我的问题是关于扩展方法和开闭原则:
为类创建扩展方法是否遵循开闭原则?
如何测试使用扩展方法的类?
【问题讨论】:
标签: c# extension-methods open-closed-principle
我的问题是关于扩展方法和开闭原则:
为类创建扩展方法是否遵循开闭原则?
如何测试使用扩展方法的类?
【问题讨论】:
标签: c# extension-methods open-closed-principle
- 为类创建扩展方法是否遵循开闭原则?
技术上是的,因为大多数正式定义都表明开放/封闭原则是“封闭以供修改,但开放以供扩展”。由于扩展方法不会修改原始类,而只是对其进行扩展,因此扩展方法符合此定义。
- 如何测试使用扩展方法的类?
就像任何其他测试一样:
扩展方法示例:
public static class Extensions
{
public static string ToLowerAndTrim(this string source) => source.Trim().ToLower();
}
使用 XUnit 的测试用例:
[Fact]
public void SampleTest()
{
string input = " Hello World ";
string expected = "hello world";
string actual = input.ToLowerAndTrim();
Assert.Equal(expected, actual);
}
【讨论】: