获取用于单元测试的程序ApplicationExitCode

时间:2012-07-24 18:24:01

标签: c# nunit

我想检查ApplicationExitCode以了解我正在测试的C#控制台程序。下面是我的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用于此项目。

1 个答案:

答案 0 :(得分:1)

为了检查退回操作系统的退出代码,您应该检查从Main返回的值。因此,您必须运行Main

var returnValue = Program.Main(arguments);
Assert.AreEqual(Utility.Status.Success, returnValue);