自从被介绍给TDD以来,我已经思考了一段时间。
哪种方法是构建“Hello World”应用程序的最佳方法?使用“测试驱动开发”将在控制台上打印“Hello World”。

我的测试会是什么样?和什么类?

请求:我对TDD并不熟悉,它没有TDD是什么类似Wikipedia的链接。只是好奇如何解决这个问题。

最佳答案

您需要将控制台隐藏在界面后面。 (无论如何,这都可以被认为是有用的)

编写测试

[TestMethod]
public void HelloWorld_WritesHelloWorldToConsole()
{
  // Arrange
  IConsole consoleMock = MockRepository.CreateMock<IConsole>();

  // primitive injection of the console
  Program.Console = consoleMock;

  // Act
  Program.HelloWorld();

  // Assert
  consoleMock.AssertWasCalled(x => x.WriteLine("Hello World"));
}

编写程序
public static class Program
{
  public static IConsole Console { get; set; }

  // method that does the "logic"
  public static void HelloWorld()
  {
    Console.WriteLine("Hello World");
  }

  // setup real environment
  public static void Main()
  {
    Console = new RealConsoleImplementation();
    HelloWorld();
  }
}

重构为更有用的东西;-)

10-05 22:53
查看更多