Утверждать о чем-то, чего не может быть - исключение nullreference - PullRequest
1 голос
/ 14 октября 2011

Использование nUnit.В результате ViewResult возвращается с контроллера MVC3 - он может быть или не быть там.

Это работает, но пахнет!Есть ли лучший способ?

        string errorMessage = "";
        try {
            errorMessage = result.TempData["Error"].ToString();
        }
        catch {}
        Assert.IsNullOrEmpty(errorMessage);

ОБНОВЛЕНИЕ1 Становится ближе ... но не может получить правильное сообщение об ошибке из теста, как показано ниже: enter image description here

ОБНОВЛЕНИЕ2: Исправленона это:

        string errorMessage = "";
        if (result != null)
            errorMessage = result.TempData["Error"].ToString();
        Assert.IsEmpty(errorMessage);

ОБНОВЛЕНИЕ3: в ответ на @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);
    }

1 Ответ

1 голос
/ 14 октября 2011

Нет необходимости пробовать / ловить.

Вы проверяете на ноль, а не на то, что есть пустая строка.

Assert.IsNull(result.TempData["Error"])

или

if (result != null && result.TempData["Error"] != null) errorMessage = result.TempData["Error"].ToString();
Assert.IsEmpty(errorMessage )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...