<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le blog de Hinault Romaric Donfack &#187; Visuall Studio 2015</title>
	<atom:link href="https://blog.developpez.com/lilroma/pcategory/net/visual-studio/visuall-studio-2015/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/lilroma</link>
	<description>Bienvenue sur ce blog. Vous y trouverez du .NET, du .NET...  encore du .NET, toujours du .NET et très peu de chose sur moi</description>
	<lastBuildDate>Sat, 27 Aug 2016 14:24:30 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>ASP.NET Core : Tests unitaires d’une application MVC avec MsTest V2</title>
		<link>https://blog.developpez.com/lilroma/p13101/net/asp-net-core-tests-unitaires-dune-application-mvc-avec-mstest-v2</link>
		<comments>https://blog.developpez.com/lilroma/p13101/net/asp-net-core-tests-unitaires-dune-application-mvc-avec-mstest-v2#comments</comments>
		<pubDate>Sat, 27 Aug 2016 14:24:30 +0000</pubDate>
		<dc:creator><![CDATA[Hinault Romaric]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET Core]]></category>
		<category><![CDATA[MsTest V2]]></category>
		<category><![CDATA[Tests Unitaires]]></category>
		<category><![CDATA[Visuall Studio 2015]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/lilroma/?p=112</guid>
		<description><![CDATA[ASP.NET Core apporte une refonte complète de la solution de développement Web de Microsoft. Le recours à un nouvel environnement d&#8217;exécution (DNX) et son architecture entrainent une incompatibilité avec de nombreux outils. En effet, si vous développez un projet ASP.NET &#8230; <a href="https://blog.developpez.com/lilroma/p13101/net/asp-net-core-tests-unitaires-dune-application-mvc-avec-mstest-v2">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ASP.NET Core apporte une refonte complète de la solution de développement Web de Microsoft. Le recours à un nouvel environnement d&rsquo;exécution (DNX) et son architecture entrainent une incompatibilité avec de nombreux outils.</p>
<p><a href="http://blog.developpez.com/lilroma/files/2016/08/aspnetcore.png"><img src="http://blog.developpez.com/lilroma/files/2016/08/aspnetcore-300x218.png" alt="aspnetcore" class="alignnone size-medium wp-image-113" /></a></p>
<p>En effet, si vous développez un projet ASP.NET Core qui utilise uniquement le CoreCLR, vous ne devez qu’utiliser les dépendances qui offrent une prise en charge du CoreCLR.</p>
<p>Depuis l’annonce de .NET Core, de nombreux éditeurs de librairies se sont activés pour offrir une prise en charge de cette version, c’est notamment le cas des outils de tests, dont<strong> MSTest</strong>. </p>
<p>Microsoft a publié il y a quelques semaines une préversion de la V2 de MsTest, qui introduit une architecture unifiée et apporte une prise en charge de .NET Core. Dans le cadre de ce billet de blog, nous verrons comment mettre en place des tests unitaires dans un projet ASP.NEt MVC Core avec <strong>MSTest V2</strong>.</p>
<p>Nous allons dans un premier temps créer une application ASP.NET Core en utilisant le modèle Web Application.</p>
<p><span id="more-112"></span></p>
<p><a href="http://blog.developpez.com/lilroma/files/2016/08/image.png"><img src="http://blog.developpez.com/lilroma/files/2016/08/image.png" alt="image" class="alignnone size-medium wp-image-114" /></a></p>
<p>Ceci fait, vous allez ajouter un nouveau projet de type bibliothèque de classe à votre projet.   Pour l’instant, il n’existe pas de modèle de projet pour la nouvelle version du framework de test de Microsoft. Cette prise en charge sera effective dans la version stable de l’outil, avec la sortie de Visual Studio 15.</p>
<p><a href="http://blog.developpez.com/lilroma/files/2016/08/image1.png"><img src="http://blog.developpez.com/lilroma/files/2016/08/image1.png" alt="image1" class="alignnone size-medium wp-image-115" /></a></p>
<p>Ajoutez les dépendances suivantes à votre projet en utilisant la console Nuget :</p>
<ul>
<li>MSTest.TestFramework</li>
<li>MSTest.TestAdapter</li>
<li>dotnet-test-mstest</li>
</ul>
<p>Le package <strong>MSTest.TestFramework</strong> permet d’installer le framework MSTest V2. Pour l’installer, cliquez sur Tools dans la barre de menu de Visual Studio, puis Nuget Package Manager, ensuite sur Package Manager Console. Rassurez-vous que dans la zone Default Project, vous avez sélectionné votre projet de test :</p>
<p><a href="http://blog.developpez.com/lilroma/files/2016/08/image2.png"><img src="http://blog.developpez.com/lilroma/files/2016/08/image2.png" alt="image2" class="alignnone size-medium wp-image-116" /></a></p>
<p>Dans la console NuGet, tapez la commande suivante :</p>
<blockquote><p>Install-Package MSTest.TestFramework -Pre</p></blockquote>
<p><strong>MSTest.TestAdapter</strong> est utilisé pour trouver et exécuter le framework de test sur lequel votre projet de test est basé. Pour l’installer, vous devez exécuter la commande suivante dans la console NuGet :</p>
<blockquote><p>Install-Package MSTest.TestAdapter -Pre:</p></blockquote>
<p>Enfin, vous allez exécuter la commande suivante pour installer le dernier package NuGet :</p>
<blockquote><p>Install-Package dotnet-test-mstest -Pre</p></blockquote>
<p>Vous allez probablement obtenir un message d’erreur d’incompatibilité lors de la restauration des packages par NuGet. Ouvrez le fichier Project.json et remplacez :</p>
<pre style='color:#000000;background:#ffffff'><span style='color:#800000'>"</span><span style='color:#0000e6'>frameworks</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
   <span style='color:#800000'>"</span><span style='color:#0000e6'>netstandard1.6</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
     <span style='color:#800000'>"</span><span style='color:#0000e6'>imports</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>dnxcore50</span><span style='color:#800000'>"</span>
   <span style='color:#800080'>}</span>
<span style='color:#800080'>}</span>
</pre>
<p>Par </p>
<pre style='color:#000000;background:#ffffff'><span style='color:#800000'>"</span><span style='color:#0000e6'>frameworks</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
   <span style='color:#800000'>"</span><span style='color:#0000e6'>netcoreapp1.0</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
     <span style='color:#800000'>"</span><span style='color:#0000e6'>imports</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#808030'>[</span>
       <span style='color:#800000'>"</span><span style='color:#0000e6'>dnxcore50</span><span style='color:#800000'>"</span><span style='color:#808030'>,</span>
       <span style='color:#800000'>"</span><span style='color:#0000e6'>portable-net45+win8</span><span style='color:#800000'>"</span>
     <span style='color:#808030'>]</span><span style='color:#808030'>,</span>
 
     <span style='color:#800000'>"</span><span style='color:#0000e6'>dependencies</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
       <span style='color:#800000'>"</span><span style='color:#0000e6'>Microsoft.NETCore.App</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
         <span style='color:#800000'>"</span><span style='color:#0000e6'>version</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>1.0.0</span><span style='color:#800000'>"</span><span style='color:#808030'>,</span>
         <span style='color:#800000'>"</span><span style='color:#0000e6'>type</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>platform</span><span style='color:#800000'>"</span>
       <span style='color:#800080'>}</span>
     <span style='color:#800080'>}</span>
   <span style='color:#800080'>}</span>
 <span style='color:#800080'>}</span>
</pre>
<p>Vous remarquerez sans doute que nous avons marqué notre bibliothèque de classes comme une application (netcoreapp1.0). Cela est dû au fait que notre projet de test utilise le .NET CLI. Sa méthode Main sera fournie par le runner de mstest. </p>
<p>Vous devez par la suite ajouter au fichier Project.json la ligne suivante, pour spécifier que votre projet de test unitaire repose sur mstest :</p>
<blockquote><p>&laquo;&nbsp;testRunner&nbsp;&raquo;: &laquo;&nbsp;mstest&nbsp;&raquo;,</p></blockquote>
<p>Ajoutez une référence au projet ASP.NET Core. Votre fichier Project.json devrait ressembler à ceci :</p>
<pre style='color:#000000;background:#ffffff'><span style='color:#800080'>{</span>
 <span style='color:#800000'>"</span><span style='color:#0000e6'>version</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>1.0.0-*</span><span style='color:#800000'>"</span><span style='color:#808030'>,</span>

 <span style='color:#800000'>"</span><span style='color:#0000e6'>testRunner</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>mstest</span><span style='color:#800000'>"</span><span style='color:#808030'>,</span>

 <span style='color:#800000'>"</span><span style='color:#0000e6'>dependencies</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
   <span style='color:#800000'>"</span><span style='color:#0000e6'>dotnet-test-mstest</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>1.1.1-preview</span><span style='color:#800000'>"</span><span style='color:#808030'>,</span>
   <span style='color:#800000'>"</span><span style='color:#0000e6'>MSTest.TestAdapter</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>1.0.3-preview</span><span style='color:#800000'>"</span><span style='color:#808030'>,</span>
   <span style='color:#800000'>"</span><span style='color:#0000e6'>MSTest.TestFramework</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>1.0.1-preview</span><span style='color:#800000'>"</span><span style='color:#808030'>,</span>
   <span style='color:#800000'>"</span><span style='color:#0000e6'>NETStandard.Library</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>1.6.0</span><span style='color:#800000'>"</span><span style='color:#808030'>,</span>
   <span style='color:#800000'>"</span><span style='color:#0000e6'>SampleApp</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>1.0.0-*</span><span style='color:#800000'>"</span>
 <span style='color:#800080'>}</span><span style='color:#808030'>,</span>

 <span style='color:#800000'>"</span><span style='color:#0000e6'>frameworks</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
   <span style='color:#800000'>"</span><span style='color:#0000e6'>netcoreapp1.0</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
     <span style='color:#800000'>"</span><span style='color:#0000e6'>imports</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#808030'>[</span>
       <span style='color:#800000'>"</span><span style='color:#0000e6'>dnxcore50</span><span style='color:#800000'>"</span><span style='color:#808030'>,</span>
       <span style='color:#800000'>"</span><span style='color:#0000e6'>portable-net45+win8</span><span style='color:#800000'>"</span>
     <span style='color:#808030'>]</span><span style='color:#808030'>,</span>

     <span style='color:#800000'>"</span><span style='color:#0000e6'>dependencies</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
       <span style='color:#800000'>"</span><span style='color:#0000e6'>Microsoft.NETCore.App</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800080'>{</span>
         <span style='color:#800000'>"</span><span style='color:#0000e6'>version</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>1.0.0</span><span style='color:#800000'>"</span><span style='color:#808030'>,</span>
         <span style='color:#800000'>"</span><span style='color:#0000e6'>type</span><span style='color:#800000'>"</span><span style='color:#808030'>:</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>platform</span><span style='color:#800000'>"</span>
       <span style='color:#800080'>}</span>
     <span style='color:#800080'>}</span>
   <span style='color:#800080'>}</span>
 <span style='color:#800080'>}</span>

<span style='color:#800080'>}</span>
</pre>
<p>Ajoutez un nouveau fichier HomeControllerTest.cs à votre projet de test. Ajoutez un appel à l’espace de nom <strong>Microsoft.VisualStudio.TestTools.UnitTesting</strong> :</p>
<blockquote><p>using Microsoft.VisualStudio.TestTools.UnitTesting; </p></blockquote>
<p>Jetons maintenant un coup d’œil au fichier HomeController.cs</p>
<pre style='color:#000000;background:#ffffff'><span style='color:#800000;font-weight:bold'>using</span> System<span style='color:#800080'>;</span>
<span style='color:#800000;font-weight:bold'>using</span> System<span style='color:#808030'>.</span>Collections<span style='color:#808030'>.</span>Generic<span style='color:#800080'>;</span>
<span style='color:#800000;font-weight:bold'>using</span> System<span style='color:#808030'>.</span>Linq<span style='color:#800080'>;</span>
<span style='color:#800000;font-weight:bold'>using</span> System<span style='color:#808030'>.</span>Threading<span style='color:#808030'>.</span>Tasks<span style='color:#800080'>;</span>
<span style='color:#800000;font-weight:bold'>using</span> Microsoft<span style='color:#808030'>.</span>AspNetCore<span style='color:#808030'>.</span>Mvc<span style='color:#800080'>;</span>

<span style='color:#800000;font-weight:bold'>namespace</span> SampleApp<span style='color:#808030'>.</span>Controllers
<span style='color:#800080'>{</span>
   <span style='color:#800000;font-weight:bold'>public</span> <span style='color:#800000;font-weight:bold'>class</span> HomeController <span style='color:#808030'>:</span> Controller
   <span style='color:#800080'>{</span>
       <span style='color:#800000;font-weight:bold'>public</span> IActionResult Index<span style='color:#808030'>(</span><span style='color:#808030'>)</span>
       <span style='color:#800080'>{</span>
           <span style='color:#800000;font-weight:bold'>return</span> View<span style='color:#808030'>(</span><span style='color:#808030'>)</span><span style='color:#800080'>;</span>
       <span style='color:#800080'>}</span>

       <span style='color:#800000;font-weight:bold'>public</span> IActionResult About<span style='color:#808030'>(</span><span style='color:#808030'>)</span>
       <span style='color:#800080'>{</span>
           ViewData<span style='color:#808030'>[</span><span style='color:#800000'>"</span><span style='color:#0000e6'>Message</span><span style='color:#800000'>"</span><span style='color:#808030'>]</span> <span style='color:#808030'>=</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>Your application description page.</span><span style='color:#800000'>"</span><span style='color:#800080'>;</span>

           <span style='color:#800000;font-weight:bold'>return</span> View<span style='color:#808030'>(</span><span style='color:#808030'>)</span><span style='color:#800080'>;</span>
       <span style='color:#800080'>}</span>

       <span style='color:#800000;font-weight:bold'>public</span> IActionResult Contact<span style='color:#808030'>(</span><span style='color:#808030'>)</span>
       <span style='color:#800080'>{</span>
           ViewData<span style='color:#808030'>[</span><span style='color:#800000'>"</span><span style='color:#0000e6'>Message</span><span style='color:#800000'>"</span><span style='color:#808030'>]</span> <span style='color:#808030'>=</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>Your contact page.</span><span style='color:#800000'>"</span><span style='color:#800080'>;</span>

           <span style='color:#800000;font-weight:bold'>return</span> View<span style='color:#808030'>(</span><span style='color:#808030'>)</span><span style='color:#800080'>;</span>
       <span style='color:#800080'>}</span>

       <span style='color:#800000;font-weight:bold'>public</span> IActionResult Error<span style='color:#808030'>(</span><span style='color:#808030'>)</span>
       <span style='color:#800080'>{</span>
           <span style='color:#800000;font-weight:bold'>return</span> View<span style='color:#808030'>(</span><span style='color:#800000'>"</span><span style='color:#0000e6'>~/Views/Shared/Error.cshtml</span><span style='color:#800000'>"</span><span style='color:#808030'>)</span><span style='color:#800080'>;</span>
       <span style='color:#800080'>}</span>
   <span style='color:#800080'>}</span>
<span style='color:#800080'>}</span>
</pre>
<p>Nous allons écrire du code pour tester le ViewResult et une autre pour le ViewData.</p>
<p>Le code que nous allons écrire va permettre de vérifier que la méthode d’action Error() retourne le bon ViewResult. Le code de test est le suivant :</p>
<pre style='color:#000000;background:#ffffff'><span style='color:#808030'>[</span>TestMethod<span style='color:#808030'>]</span>
        <span style='color:#800000;font-weight:bold'>public</span> <span style='color:#800000;font-weight:bold'>void</span> Error_ReturnErrorView<span style='color:#808030'>(</span><span style='color:#808030'>)</span>
        <span style='color:#800080'>{</span>
            <span style='color:#696969'>// Arrange</span>
            <span style='color:#800000;font-weight:bold'>var</span> controller <span style='color:#808030'>=</span> <span style='color:#800000;font-weight:bold'>new</span> HomeController<span style='color:#808030'>(</span><span style='color:#808030'>)</span><span style='color:#800080'>;</span>
            <span style='color:#800000;font-weight:bold'>var</span> errorView <span style='color:#808030'>=</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>~/Views/Shared/Error.cshtml</span><span style='color:#800000'>"</span><span style='color:#800080'>;</span>

            <span style='color:#696969'>// Act</span>
            <span style='color:#800000;font-weight:bold'>var</span> viewResult <span style='color:#808030'>=</span> controller<span style='color:#808030'>.</span>Error<span style='color:#808030'>(</span><span style='color:#808030'>)</span> <span style='color:#800000;font-weight:bold'>as</span> ViewResult<span style='color:#800080'>;</span>

            <span style='color:#696969'>// Assert</span>
            Assert<span style='color:#808030'>.</span>AreEqual<span style='color:#808030'>(</span>errorView<span style='color:#808030'>,</span> viewResult<span style='color:#808030'>.</span>ViewName<span style='color:#808030'>)</span><span style='color:#800080'>;</span>
        <span style='color:#800080'>}</span>
</pre>
<p>Pour le ViewData, nous allons tester que notre méthode d’action renvoie le bon ViewData. La méthode de test pour effectuer cela est la suivante :</p>
<pre style='color:#000000;background:#ffffff'><span style='color:#808030'>[</span>TestMethod<span style='color:#808030'>]</span>
       <span style='color:#800000;font-weight:bold'>public</span> <span style='color:#800000;font-weight:bold'>void</span> About_ReturnViewData<span style='color:#808030'>(</span><span style='color:#808030'>)</span>
       <span style='color:#800080'>{</span>
           <span style='color:#696969'>// Arrange</span>
           <span style='color:#800000;font-weight:bold'>var</span> controller <span style='color:#808030'>=</span> <span style='color:#800000;font-weight:bold'>new</span> HomeController<span style='color:#808030'>(</span><span style='color:#808030'>)</span><span style='color:#800080'>;</span>
           <span style='color:#800000;font-weight:bold'>var</span> viewData <span style='color:#808030'>=</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>Your application description page.</span><span style='color:#800000'>"</span><span style='color:#800080'>;</span>

           <span style='color:#696969'>// Act</span>
           <span style='color:#800000;font-weight:bold'>var</span> viewResult <span style='color:#808030'>=</span> controller<span style='color:#808030'>.</span>About<span style='color:#808030'>(</span><span style='color:#808030'>)</span> <span style='color:#800000;font-weight:bold'>as</span> ViewResult<span style='color:#800080'>;</span>

           <span style='color:#696969'>// Assert</span>
           Assert<span style='color:#808030'>.</span>AreEqual<span style='color:#808030'>(</span>viewData<span style='color:#808030'>,</span> viewResult<span style='color:#808030'>.</span>ViewData<span style='color:#808030'>[</span><span style='color:#800000'>"</span><span style='color:#0000e6'>Message</span><span style='color:#800000'>"</span><span style='color:#808030'>]</span><span style='color:#808030'>)</span><span style='color:#800080'>;</span>
       <span style='color:#800080'>}</span>
</pre>
<p>Le code complet est le suivant :</p>
<pre style='color:#000000;background:#ffffff'><span style='color:#808030'>[</span>TestClass<span style='color:#808030'>]</span>
    <span style='color:#800000;font-weight:bold'>public</span> <span style='color:#800000;font-weight:bold'>class</span> HomeControllerTest
    <span style='color:#800080'>{</span>


        <span style='color:#808030'>[</span>TestMethod<span style='color:#808030'>]</span>
        <span style='color:#800000;font-weight:bold'>public</span> <span style='color:#800000;font-weight:bold'>void</span> Error_ReturnErrorView<span style='color:#808030'>(</span><span style='color:#808030'>)</span>
        <span style='color:#800080'>{</span>
            <span style='color:#696969'>// Arrange</span>
            <span style='color:#800000;font-weight:bold'>var</span> controller <span style='color:#808030'>=</span> <span style='color:#800000;font-weight:bold'>new</span> HomeController<span style='color:#808030'>(</span><span style='color:#808030'>)</span><span style='color:#800080'>;</span>
            <span style='color:#800000;font-weight:bold'>var</span> errorView <span style='color:#808030'>=</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>~/Views/Shared/Error.cshtml</span><span style='color:#800000'>"</span><span style='color:#800080'>;</span>

            <span style='color:#696969'>// Act</span>
            <span style='color:#800000;font-weight:bold'>var</span> viewResult <span style='color:#808030'>=</span> controller<span style='color:#808030'>.</span>Error<span style='color:#808030'>(</span><span style='color:#808030'>)</span> <span style='color:#800000;font-weight:bold'>as</span> ViewResult<span style='color:#800080'>;</span>

            <span style='color:#696969'>// Assert</span>
            Assert<span style='color:#808030'>.</span>AreEqual<span style='color:#808030'>(</span>errorView<span style='color:#808030'>,</span> viewResult<span style='color:#808030'>.</span>ViewName<span style='color:#808030'>)</span><span style='color:#800080'>;</span>
        <span style='color:#800080'>}</span>


        <span style='color:#808030'>[</span>TestMethod<span style='color:#808030'>]</span>
        <span style='color:#800000;font-weight:bold'>public</span> <span style='color:#800000;font-weight:bold'>void</span> About_ReturnViewData<span style='color:#808030'>(</span><span style='color:#808030'>)</span>
        <span style='color:#800080'>{</span>
            <span style='color:#696969'>// Arrange</span>
            <span style='color:#800000;font-weight:bold'>var</span> controller <span style='color:#808030'>=</span> <span style='color:#800000;font-weight:bold'>new</span> HomeController<span style='color:#808030'>(</span><span style='color:#808030'>)</span><span style='color:#800080'>;</span>
            <span style='color:#800000;font-weight:bold'>var</span> viewData <span style='color:#808030'>=</span> <span style='color:#800000'>"</span><span style='color:#0000e6'>Your application description page.</span><span style='color:#800000'>"</span><span style='color:#800080'>;</span>

            <span style='color:#696969'>// Act</span>
            <span style='color:#800000;font-weight:bold'>var</span> viewResult <span style='color:#808030'>=</span> controller<span style='color:#808030'>.</span>About<span style='color:#808030'>(</span><span style='color:#808030'>)</span> <span style='color:#800000;font-weight:bold'>as</span> ViewResult<span style='color:#800080'>;</span>

            <span style='color:#696969'>// Assert</span>
            Assert<span style='color:#808030'>.</span>AreEqual<span style='color:#808030'>(</span>viewData<span style='color:#808030'>,</span> viewResult<span style='color:#808030'>.</span>ViewData<span style='color:#808030'>[</span><span style='color:#800000'>"</span><span style='color:#0000e6'>Message</span><span style='color:#800000'>"</span><span style='color:#808030'>]</span><span style='color:#808030'>)</span><span style='color:#800080'>;</span>
        <span style='color:#800080'>}</span>

    <span style='color:#800080'>}</span>
</pre>
<p>A l’exécution, vous allez obtenir le résultat suivant dans l’explorateur de test :</p>
<p><a href="http://blog.developpez.com/lilroma/files/2016/08/image3.png"><img src="http://blog.developpez.com/lilroma/files/2016/08/image3.png" alt="image3" width="264" height="130" class="alignnone size-full wp-image-119" /></a></p>
<p>C’est tout. Dans un prochain billet, nous verrons comment écrire des tests unitaires smockés avec mstest v2 et la preview de Moq, qui prend aussi en charge .NET Core.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
