使用nUnit。結果是從MVC3控制器返回的ViewResult - 它可能會或可能不會在那裏。斷言可能不存在的東西 - nullreferenceexception
這個工程,但氣味!有沒有更好的辦法?
string errorMessage = "";
try {
errorMessage = result.TempData["Error"].ToString();
}
catch {}
Assert.IsNullOrEmpty(errorMessage);
UPDATE1 越來越近......但是不能得到正確的錯誤信息進行的檢測,如下圖所示:
UPDATE2: 重構這樣:
string errorMessage = "";
if (result != null)
errorMessage = result.TempData["Error"].ToString();
Assert.IsEmpty(errorMessage);
UPDATE3: 迴應@Peri
public void new_trick_should_be_saved_without_error() {
var controller = new TricksController();
var formCollection = new FormCollection() {
{ "Name", "asdf" },
{ "Description", "test descr"},
{ "Votes", "4" }
};
var result = controller.Create(formCollection) as ViewResult;
string errorMessage = "";
if (result != null)
errorMessage = result.TempData["Error"].ToString();
Assert.IsEmpty(errorMessage);
}
看起來有一些錯誤的測試,如果你要測試,如果結果!= NULL。 –
可能..已在上面的更新3中。 –
爲什麼Create會返回ViewResult或者其他呢?基於這些FormCollection中的值不應該總是返回ViewResult或者總是這樣? –