我是单元测试的新手。如何检查控制台输出?
我有
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
进入内存流或类似的,您可以稍后检查其内容。
更好的答案是使用模拟框架,例如 Rhino Mocks 来创建抽象类的具体实例,并期望DrawXXShape
方法将被调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)