2012-07-24 58 views
0

我想檢查我的C#控制檯程序的ApplicationExitCode在測試。以下是我的NUnit測試方法。我不確定用什麼來替換問號。獲取程序ApplicationExitCode單元測試

我的測試類方法:

[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

爲了檢查將返回到操作系統的退出代碼,您應該檢查從Main返回的值。所以你必須運行Main

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