юнит-тесты и капитан очевидны (ASP.NET MVC) - PullRequest
3 голосов
/ 12 августа 2010

Недавно я начал писать на asp.net mvc framework. У меня проблема. Я не могу понять значение модульных тестов. Давайте посмотрим на примере

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
        ViewData["Message"] = "Welcome to ASP.NET MVC!"; 
        return View(); 
    } 

    public ActionResult About() 
    { 
        return View(); 
    } 
} 

и тесты

[TestMethod] 
public void Index() 
{ 
    HomeController controller = new HomeController(); 

    ViewResult result = controller.Index() as ViewResult; 

    ViewDataDictionary viewData = result.ViewData; 
    Assert.AreEqual("Welcome to ASP.NET MVC!", viewData["Message"]); 
} 

[TestMethod] 
public void About() 
{ 
    HomeController controller = new HomeController(); 

    ViewResult result = controller.About() as ViewResult; 

    Assert.IsNotNull(result); 
} 

У меня есть вопросы.

1) В каком случае метод About не вернет View?

Если нет представления About, метод ничего не вернет. Это очевидно Просто нажмите «Run», введите в браузере «Home / About» и посмотрите результат. Без каких-либо юнит-тестов. Это быстрее, чем создавать модульные тесты, запускать их ...

2) В каком случае метод About возвращает diffrent ViewData? Проверь себя. Это быстрее, чем юнит-тесты

Посмотрим тест контроллера аккаунта

Используя этот тест, мы можем проверить успешность входа. Но проще запустить приложение и ввести логин / пароль вручную

Пожалуйста, опишите преимущества модульных тестов. В модульных тестах мы будем вводить данные вручную. Так почему мы не можем набрать его вручную? Разъясните пожалуйста в чём их плюс. * * * * * * * * * * * * * * * *

Ответы [ 2 ]

3 голосов
/ 12 августа 2010

Вы правы, это юнит-тесты Капитана Очевидности.На практике вы будете писать более сложные модульные тесты, чем эта.

Но проще запустить приложение и ввести логин / пароль вручную

Один раз, может быть.Но после каждой сборки?Суть в автоматизации: после того, как вы создали огромный набор модульных тестов, вы можете использовать тестовую среду, чтобы выполнить все это автоматически, чтобы отследить регрессии, введенные с последним набором изменений.

-развития и т. д. Я ожидаю, что есть хорошие "Почему юнит тест?"очерки с гораздо большим.

1 голос
/ 12 августа 2010

Хорошо, есть две причины:

  1. Юнит-тесты автоматические. Все вы нужно запустить свои тесты и проверить если все в порядке. В случае ручное тестирование вы должны вручную проверяйте все каждый раз, когда вы необходимо выполнить тестирование.

  2. Юнит-тест называется "юнит", потому что Вы можете проверить каждый метод в изоляция. Так что в случае ошибки вы может легко найти причину.

А также подробнее о модульных тестах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...