我是单元测试的新手。如何检查控制台输出? 我有
namespace XXShapes
{
public abstract class XXShape
{
public virtual void DrawXXShape()
{
Console.WriteLine("The XXShape was drawn.");
}
}
public class XXCircle : XXShape
{
public override void DrawXXShape()
{
Console.WriteLine("The XXCircle was drawn.");
}
}
namespace XXShapes.Test
{
[TestFixture]
public class XXShapeTest
{
[Test]
public void MyFirstTest()
{
XXShape s = new XXCircle();
string expected = "The XXCircle was drawn.";
s.DrawXXShape();
string actual = Console.ReadLine();
Assert.AreEqual(expected, actual);
}
}
}
我应该如何正确地测试它? 感谢您的指点。 干杯, ~ck
最佳答案
字面上的答案是,您将在调用被测类之前使用 Console.SetOut
将 stdout
定向到 memoryStream 或类似的内容,稍后您可以检查其内容.
更好的答案是使用模拟框架(如 Rhino Mocks)来创建抽象类的具体实例,并期望设置 DrawXXShape
方法将被调用。
关于c# - 单元测试帮助。如何测试消息输出到控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1286518/