我正在製作一個非常簡單的C#程序,用於輸出文本並嘗試對其進行測試。我的測試一直失敗,因爲來自控制檯的文本與我正在比較的文本不相同。我認爲它只是沒有被正確地轉換成字符串,但我不知道。 下面是程序代碼:如何將控制檯輸出轉換爲字符串?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Lab3._1
{
public class ConsoleOutput
{
static void Main()
{
Console.WriteLine("Hello World!");
}
}
}
下面是測試代碼:
using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Lab3._1Test
{
[TestClass]
public class ConsoleOutputTest
{
[TestMethod]
public void WriteToConsoleTest()
{
var currentConsoleOut = Console.Out;
string newConsoleOut = currentConsoleOut.ToString();
string ConsoleOutput = "Hello World!";
Assert.AreEqual(newConsoleOut, ConsoleOutput);
}
}
}
以下是錯誤我得到:
Test Failed - WriteToConsoleTest
Message: Assert.AreEqual failed.
Expected:<System.IO.TextWriter+SyncTextWriter>.Actual:<Hello World!>.
斷言之前,設置一個斷點,看看有什麼'newConsoleOut','currentConsoleOut'是。 – Envil
您是否設置了*斷點*來驗證'newConsoleOut'是什麼? –
我想檢查控制檯輸出是否等於字符串「Hello World!」 –