我的问题是关于扩展方法和开闭原理:
为类创建扩展方法是否遵循开闭原理?
我如何测试使用扩展方法的类?
- 为类创建扩展方法是否遵循开闭原理?
从技术上讲,是的,因为大多数正式定义都指出开放/封闭原则是“封闭修改,但开放扩展”。由于扩展方法不是修改原始类,而是仅对其进行扩展,因此扩展方法符合此定义。
- 我如何测试使用扩展方法的类?
就像其他测试一样:
示例扩展方法:
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);
}