【发布时间】:2016-02-15 01:31:29
【问题描述】:
根据this answer,我想知道如何模拟 StringBuilder 类。他们嘲笑 Console 类的方式很棒:
你需要一个接口来定义你的依赖:
public interface IConsoleService
{
string ReadLine();
void WriteLine(string message);
}
You create a default implementation for it:
public class ConsoleService : IConsoleService
{
public string ReadLine()
{
return Console.ReadLine();
}
public void WriteLine(string message)
{
Console.WriteLine(message);
}
}
模拟 StringBuilder.Append 方法的方法是什么?
到目前为止,我拥有的是这样的:
public interface IStringBuilderService
{
string Append(string line);
StringBuilder s
}
public class StringBuilderService : IStringBuilderService
{
public string Append(string line)
{
return this.ToString() += line;
}
}
【问题讨论】:
-
为什么?我不明白嘲讽在这里给你带来了什么。这是一个库类;不跨越国界。
-
@duffymo 练习
-
不好的做法对你没有好处。只会养成坏习惯。首先我们养成习惯;然后我们的习惯造就了我们。节省您的精力并学习如何正确模拟。
-
@duffymo 太好了,你能推荐一个开始的地方吗?
-
阅读您喜欢使用的模拟库的文档。我可以告诉你不要看 - 不要嘲笑 StringBuilder。
标签: c# .net visual-studio unit-testing nunit