Sono un principiante ai test unitari. Come controllo l'uscita della console? HoAiuto test unità. Come posso testare l'uscita di un messaggio alla console?
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);
}
}
}
Come devo correttamente essere prove? Grazie per qualsiasi suggerimento. Cheers, ~ ck
Che Assert sta solo testando il metodo produceXxCircle(), non che è stato chiamato il metodo draw. –
Infatti, ma cosa vuoi testare? Se Console.WriteLine sta trasmettendo correttamente le stringhe alla console? Non dovresti testarlo, dal momento che Console.WriteLine non è il tuo codice. Fa parte del framework –
Sì, il codice originale come indicato sta cercando di eseguire un test abbastanza vuoto - chiamando 's.DrawXXShape();' e quindi controllando che sia stato chiamato il metodo 'DrawXXShape'. Ma almeno sta iniziando con i test. –