使用nUnit。结果是从MVC3控制器返回的ViewResult - 它可能存在也可能不存在。
这有效,但闻起来!还有更好的方法吗?
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);
}
答案 0 :(得分:1)
无需尝试/捕获。
您正在测试null,而不是空字符串。
Assert.IsNull(result.TempData["Error"])
或
if (result != null && result.TempData["Error"] != null) errorMessage = result.TempData["Error"].ToString();
Assert.IsEmpty(errorMessage )