0

我想检查我正在测试的 C# 控制台程序的 ApplicationExitCode。下面是我的 NUnit 测试方法。我不确定用什么替换问号。

我的测试类方法:

[Test]
public void ExitApplicationWithZeroOnNoErrors()
{
  string[] arguments = { "--version=43" };
  var program = new Program(arguments);
  Assert.AreEqual(Utility.Status.Success, ?????);
}

我的主要应用程序 Program.cs。

public class Program
{
    public int? Version { get; private set; }

    [STAThread]
    public static int Main(string[] arguments)
    {
        var program = new Program(arguments);
        return (int)Utility.Status.Success;
    }

    public Program(IEnumerable<string> arguments)
    {
        var parameters = new OptionSet()
                             {
                                 {"v|version=", "Client version number.", (int v) => Version = v},
                             };
        parameters.Parse(arguments);
    }
}

顺便说一句,我正在使用 NDesk.Options 类来收集参数。我试图为这个项目编写单元测试并利用 TDD。

4

1 回答 1

1

为了检查将返回给操作系统的退出代码,您应该检查从Main. 所以你必须运行Main

var returnValue = Program.Main(arguments);
Assert.AreEqual(Utility.Status.Success, returnValue);
于 2012-07-24T18:27:34.827 回答