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

OS に返される終了コードを確認するには、 から返される値を確認する必要がありますMain。したがって、実行する必要がありますMain

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