 
            在一些特定的情况下我们需要来Mock console。 得到我们往Console写入的数据
public class ConsoleOutput : IDisposable
    {
        private StringWriter normalStringWriter;
        private TextWriter originalOut;
        private StringWriter errorStringWriter; //只是为了把 console的东西设回去。但是如果有多线程的情况就得加锁
        private TextWriter originalError;
        public ConsoleOutput()
        {
            normalStringWriter = new StringWriter();
            originalOut = Console.Out;
            Console.SetOut(normalStringWriter);
            originalError = Console.Error;
            errorStringWriter = new StringWriter();
            Console.SetError(errorStringWriter);
        }
        public string GetOuput()
        {
            return normalStringWriter.ToString();
        }
        public string GetError()
        {
            return errorStringWriter.ToString();
        }
        public void Dispose()
        {
            Console.SetOut(originalOut);
            Console.SetError(originalError);
            normalStringWriter.Dispose();
            errorStringWriter.Dispose();
        }
    }
使用
[Collection("console")] //防止并发
public class Test1
{
        [Fact]
        public void Test()
		{
			using (var co = new ConsoleOutput())
            {
                Console.WriteLine("aaaa");
                var result = co.GetOuput(); //这边可以得到数据的
            }
		}
}