Article de reference

NUnit

( Apprenez comment et quand supprimer ce message ) NUnit est un framework de tests unitaires open source pour .NET , .NET Framework et Mono . Il remplit la même fonction que JUn...

( Apprenez comment et quand supprimer ce message )

NUnit est un framework de tests unitaires open source pour .NET , .NET Framework et Mono . Il remplit la même fonction que JUnit dans l' environnement Java et fait partie de la famille xUnit .

Caractéristiques

  • Les tests peuvent être exécutés à partir d'un exécuteur de console, dans Visual Studio via un adaptateur de test, ou via des exécuteurs tiers.
  • Les tests peuvent être exécutés en parallèle.
  • Un soutien important aux tests basés sur les données.
  • Supports multiple platforms including .NET Core,Xamarin Mobile,Compact Framework and Silverlight.
  • Every test case can be added to one or more categories, to allow for selective running.

NUnit provides a console runner (nunit3-console.exe), which is used for batch execution of tests. The console runner works through the NUnit Test Engine, which provides it with the ability to load, explore and execute tests. When tests are to be run in a separate process, the engine makes use of the nunit-agent program to run them.

The NUnitLite runner may be used in situations where a simpler runner is more suitable. It allows developers to create self-executing tests.

Assertions

NUnit provides a rich set of assertions as static methods of the Assert class. If an assertion fails, the method call does not return and an error is reported. If a test contains multiple assertions, any that follow the one that failed will not be executed. For this reason, it's usually best to try for one assertion per test.

Nunit 3.x is supporting multiple assertions.

[Test]publicvoidComplexNumberTest(){ComplexNumberresult=SomeCalculation();Assert.Multiple(()=>{Assert.AreEqual(5.2,result.RealPart,"Real part");Assert.AreEqual(3.9,result.ImaginaryPart,"Imaginary part");});}

Classical

Before NUnit 2.4, a separate method of the Assert class was used for each different assertion. It continues to be supported in NUnit, since many people prefer it.

Each assert method may be called without a message, with a simple text message or with a message and arguments. In the last case the message is formatted using the provided text and arguments.

// Equality assertsAssert.AreEqual(objectexpected,objectactual);Assert.AreEqual(objectexpected,objectactual,stringmessage,paramsobject[]parms);Assert.AreNotEqual ( objet attendu , objet réel ) ; Assert.AreNotEqual ( objet attendu , objet réel , chaîne message , objet params [ ] parms ) ;// Asserts d' identité Assert.AreSame ( objet attendu , objet réel ) ; Assert.AreSame ( objet attendu , objet réel , chaîne message , params objet [ ] parms ) ;Assert.AreNotSame ( objet attendu , objet réel ) ; Assert.AreNotSame ( objet attendu , objet réel , chaîne message , params objet [ ] parms ) ;// Asserts de condition // (Par souci de simplicité, les méthodes avec signature de message sont omises.) Assert.IsTrue ( bool condition ) ; Assert.IsFalse ( bool condition );Assert.IsNull ( object anObject ) ; Assert.IsNotNull ( object anObject ) ;Assert.IsNaN ( double aDouble ) ;Assert.IsEmpty ( string aString ) ; Assert.IsNotEmpty ( string aString ) ;Assert.IsEmpty ( ICollection collection ) ; Assert.IsNotEmpty ( ICollection collection ) ;

basé sur les contraintes

À partir de NUnit 2.4, un nouveau modèle basé sur les contraintes a été introduit. Cette approche utilise une méthode unique de la Assertclasse pour toutes les assertions, en lui passant un Constraintobjet spécifiant le test à effectuer. Ce modèle est désormais utilisé en interne par NUnit pour toutes les assertions. Les méthodes de l'approche classique ont été réimplémentées en s'appuyant sur ce nouveau modèle.

Exemple

Exemple de configuration de test NUnit :

using NUnit.Framework ; [TestFixture] public class ExampleTestOfNUnit { [Test] public void TestMultiplication () { Assert.AreEqual ( 4 , 2 * 2 , "Multiplication" ) ; // De manière équivalente, depuis la version 2.4 , NUnit propose une syntaxe d'assertion nouvelle et // plus intuitive basée sur les objets de contrainte // [http://www.nunit.org/index.php?p=constraintModel&r=2.4.7]: Assert.That ( 2 * 2 , Is.EqualTo ( 4 ) , "Multiplication basée sur les contraintes" ) ; } }// L'exemple suivant illustre différentes manières d'écrire le même test d'exception.[TestFixture] public class AssertThrowsTests { [Test] public void Tests () { // .NET 1.x Assert . Throws ( typeof ( ArgumentException ), new TestDelegate ( MethodThatThrows )); // .NET 2.0 Assert . Throws < ArgumentException > ( MethodThatThrows ); Assert . Throws < ArgumentException > ( delegate { throw new ArgumentException (); });// Utilisation de C# 3.0 Assert.Throws <ArgumentException> ( ( ) => { throw new ArgumentException ( ); }); } void MethodThatThrows () { throw new ArgumentException (); } }// Cet exemple montre comment utiliser la valeur de retour pour effectuer une vérification supplémentaire de l'exception.[TestFixture] public class UsingReturnValue { [Test] public void TestException () { MyException ex = Assert . Throws < MyException > ( delegate { throw new MyException ( "message" , 42 ); }); Assert . That ( ex . Message , Is . EqualTo ( "message" )); Assert . That ( ex . MyParam , Is . EqualTo ( 42 )); } }// Cet exemple fait la même chose en utilisant la surcharge qui inclut une contrainte.[TestFixture] public class UsingConstraint { [Test] public void TestException () { Assert . Throws ( Is . Typeof < MyException > () . And . Message . EqualTo ( "message" ) . And . Property ( "MyParam" ). EqualTo ( 42 ), delegate { throw new MyException ( "message" , 42 ); }); } }

Le framework NUnit découvre ExampleTestOfNUnit.TestMultiplication()automatiquement la méthode par réflexion .

Extensions

FireBenchmarks est une extension permettant d'enregistrer le temps d'exécution des tests unitaires et de générer des rapports de performances aux formats XML , CSV et XHTML , incluant graphiques et historique. Son objectif principal est de permettre aux développeurs et aux équipes travaillant en méthodologie agile d'intégrer des indicateurs et des analyses de performance à leur environnement de tests unitaires , afin de contrôler et de suivre l'évolution d'un système logiciel en termes de complexité algorithmique et de charge des ressources système.

NUnit.Forms est une extension du framework NUnit et est également open source. Elle vise spécifiquement à étendre NUnit pour permettre le test des éléments d'interface utilisateur dans Windows Forms . En janvier 2013, NUnit.Forms était en version alpha ; aucune version n'avait été publiée depuis mai 2006.

NUnit.ASP est une extension abandonnée du framework NUnit de base et est également open source. Elle vise spécifiquement à étendre NUnit pour permettre le test des éléments d'interface utilisateur dans ASP.NET.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index