2010-08-12 3 views
3

Récemment, j'ai commencé à écrire sur asp.net mvc framework. J'ai un problème. Je ne peux pas comprendre le sens des tests unitaires. Voyons voir sur exempletests unitaires et capitaine évident (ASP.NET MVC)

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

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

et les essais

[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); 
} 

J'ai une question.

1) Dans quel cas, la méthode About ne retournera pas View?

S'il n'y a pas de vue À propos, la méthode ne retournera rien. Il est évidemment Il est simple de cliquer sur "Exécuter", tapez dans le navigateur "Accueil/A propos" et voir le résultat. Sans tests unitaires. Il est plus rapide que de créer des tests unitaires, en les exécutant ...

2) Dans quel cas, la méthode About return diff ViewData? Vérifiez-vous. Il est plus rapide que l'unité teste

Voyons voir le test du contrôleur de compte

En utilisant ce test, nous pouvons vérifier vous connecter succès. Mais il est plus simple d'exécuter l'application et de saisir manuellement le mot de passe/login

Veuillez décrire les avantages des tests unitaires. Dans les tests unitaires, nous entrerons les données manuellement. Alors pourquoi ne pouvons-nous pas le taper manuellement? Разъясните пожалуйста в чём их плюс. Если всё равно все тестировочные данные набиваешь руками не проще ли самому всё проверить

Répondre

3

Vous avez raison, ce sont le capitaine des tests unitaires Obvious. En pratique, vous écrirez des tests unitaires plus compliqués que cela.

Mais il est plus simple d'exécuter l'application et le type login/mot de passe manuellement

Une fois, peut-être. Mais après chaque construction? Le point est l'automatisation: une fois que vous avez construit une énorme suite de tests unitaires, vous pouvez utiliser le framework de test pour l'exécuter automatiquement afin d'intercepter les régressions introduites avec le dernier ensemble de modifications.

Et puis il y a le développement piloté par les tests, etc. Je m'attends à ce qu'il y ait de bons "Pourquoi un test unitaire?" Essais là-bas avec beaucoup plus.

1

fin, il y a deux raisons:

  1. Les tests unitaires sont automatiques. Tout ce dont vous avez besoin est de faire vos tests et de vérifier si tout va bien. Dans le cas du test manuel , vous devez manuellement vérifier tout à chaque fois lorsque vous besoin d'effectuer des tests.

  2. Unité test appelé "unité" car vous pouvez tester chaque méthode dans isolation. Donc, en cas d'erreur, vous pouvez trouver facilement la cause .

Et en savoir plus sur unit tests