2011-09-30 43 views
1

現在我試圖測試會話變量。比如我設置:C#測試修改後的會話變量

Session["test"] = "test"; 

然後:

if (blah) { Session["test"] = "foo"; } 
else if (testing) { Session["test"] = "foo2"; } 

我希望能夠運行測試,以便根據我提出我可以看到,Session變量已適當改變的條件。我使用起訂量嘗試和我能夠創建一個模擬會話,然後定義一個變量來返回特定的東西:

controllerContext.Setup(x => x.HttpContext.Session["test"]).Returns("test"); 

這不,雖然通過測試運行時更改。 如果我使用會話封裝強烈鍵入變量,它似乎更加複雜,因爲我嘗試在控制器之間傳遞模擬會話和上下文。

我讀了一些關於FakeContext和Fake Sessions而不是Mock的內容。我也聽過一些關於使用代表的信息。真的,我只是試圖模擬代碼實際運行時發生的情況,並確保最終結果是我期望的,而且它恰好經常取決於我的Session變量。測試修改的最佳方法是什麼?

回答