Fermer

mai 17, 2018

Plus de fonctionnalités C # prises en charge dans la nouvelle version de JustMock R2 2018


Dans la version R2 2018, JustMock prend officiellement en charge un certain nombre de fonctionnalités C # supplémentaires. Lisez la suite pour en savoir plus sur toutes les nouvelles mises à jour.

Avec la version R2 2018 de Telerik JustMock nous nous sommes concentrés sur le langage C # et ses fonctionnalités. Maintenant, JustMock prend officiellement en charge les propriétés auto en lecture seule, les initialiseurs de propriété automatique, les membres de fonction d'expression, l'interpolation de chaîne, utilisant des modificateurs d'accès statiques protégés et dans modificateur de paramètre. Permettez-moi de plonger plus profondément dans chacune de ces mises à jour.

Propriétés Auto Read-Only

Selon la documentation Microsoft:

cette fonctionnalité [of auto-properties] permet un vrai support de langage pour créer des types immuables et utiliser le plus concis et pratique Syntaxe auto-property

La création d'une maquette d'une propriété auto en lecture seule est aussi simple que de se moquer d'une propriété auto standard. Ce qu'il faut faire, c'est créer un objet fantaisie pour la classe testée et organiser la propriété auto en lecture seule comme indiqué dans l'extrait de code ci-dessous:

C'est la classe qui sera testée:

 public class ReadOnlyAutoProperty
{
  chaîne publique FullName {get; }
 
  ReadOnlyAutoProperty publique ()
  {
    this.FullName = "Mihail Vladov";
  }
} 

Voici comment créer et organiser.

 var foo = Mock.Create  ();
Mock.Arrange (() => foo.FullName) .Returns ("John Doe"); 

Initialiseurs de propriété automatique

Une autre fonctionnalité C # prise en charge est l'initialiseur de propriété automatique. Il vous permet de déclarer facilement une valeur initiale pour une propriété auto dans le cadre de la déclaration de propriété. Encore une fois, créer un simulacre pour une propriété auto avec l'initialiseur en ligne est aussi simple que créer un simulacre pour une propriété.

Ceci est la propriété qui sera testée:

 public class ReadOnlyAutoProperty
{
  chaîne publique Name {get; } = "Mihail Vladov";
} 

Voici comment créer, organiser et affirmer.

 var foo = Mock.Create  ();
Mock.Arrange (() => foo.Name) .Returns ("John Doe"); 

Membres de la fonction Body Expression

La prochaine fonctionnalité C # prise en charge est la fonction expression-bodied. Il vous permet de déclarer le corps d'une méthode ou une propriété en lecture seule en tant qu'expression. C'est utile lorsque vous souhaitez créer le corps avec une seule instruction. Voici un exemple de la syntaxe d'une méthode avec une fonction expression-bodied:

 public string GetFullName () => string.Format ("{0} {1}", Prénom, Nom); 

Et ici est un exemple de la syntaxe d'une propriété en lecture seule avec une fonction expression-bodied:

 chaîne publique FullName => string.Format ("{0} {1}", FirstName, LastName); 

JustMock permet vous pouvez créer et organiser le simulacre pour une fonction d'expression de corps de la même manière qu'une fonction de corps de bloc. Voici la classe qui sera testée dans les exemples suivants:

 public class ClientInfo
{
  chaîne publique FullName => string.Format ("{0} {1}", "Mihail", "Vladov");
  chaîne publique GetFullName () => string.Format ("{0} {1}", "Mihail", "Vladov");
} 

Et voici comment la méthode avec la fonction expression-body doit être arrangée:

 var mockObj = Mock.Create  ();
Mock.Arrange (() => mockObj. FullName) .Returns ("John Doe"); 

Interpolation de chaîne

L'interpolation de chaîne est la prochaine fonctionnalité C # dans la liste prise en charge. Cela vous permet de formater une chaîne de manière beaucoup plus simple. Voici à quoi ressemble la syntaxe:

 string name = $ "Name {Name}" 

Dans ce scénario, l'expression peut être directement mockée. Voici un exemple de la façon dont cela doit être fait:

 Mock.Arrange (() => $ "Name {Name}"). Renvoie ("John Doe"); 

Utiliser Static

l'utilisation de static est une autre fonctionnalité C # supportée par JustMock. La fonctionnalité vous permet d'importer les méthodes statiques d'une seule classe. La saisie répétée du nom de la classe n'est plus nécessaire. Les méthodes statiques peuvent être directement appelées par leur nom. Voici un exemple de la façon dont cette fonctionnalité est utilisée:

 using static System.Math;

int max = Max (3,5); 

Le simulacre devrait être fait avec l'approche déjà connue:

 Mock.Arrange (() => Max (2, 3)) .Retails (attendu); [19659009Lerésultatdel'appelde Max  avec le premier paramètre ( 2 ) et du deuxième paramètre ( 3 ) renvoie la valeur de la variable attendue. Ce comportement simulé ne sera applicable que pour le test où l'arrangement a lieu et il ne sera pas transféré à d'autres méthodes de test s'il n'est pas explicitement spécifié. Si le scénario est la méthode statique pour conserver le comportement simulé pour tous les tests de la classe de test, l'arrangement doit être fait dans une méthode de classe initialize 

Modificateur d'accès privé protégé

private protected Le modificateur d'accès a été introduit avec C # 7.2 et les méthodes déclarées avec ce modificateur d'accès peuvent être moquées avec JustMock.

Voici à quoi ressemble une classe utilisant le modificateur d'accès privé

:
 public class Foo
{
  private protected int GetValue ()
  {
    retour 42;
  }
} 

Et voici une classe qui hérite de Foo et qui appellera la méthode privée protégée GetValue :

 public class Bar: Foo
{
  public int GetAddValue ()
  {
    return GetValue () + 15;
  }
} 

L'arrangement pour la méthode privée protégée GetValue devrait être fait avec l'aide de l'attente NonPublic comme ceci:

 var mockObj = Mock.Create  (Behavior.CallOriginal);
Mock.NonPublic.Arrange  (mockObj, "GetValue"). Returns (32); 

Ceci est tout ce qui est nécessaire pour le faux d'une méthode déclarée avec le private protected modificateur d'accès. ] dans le modificateur de paramètre

Et la dernière fonctionnalité C # dans cette liste introduite avec C # 7.2 est le modificateur de paramètre dans . Il est utilisé dans une signature de méthode pour spécifier que l'argument est passé comme référence mais ne sera pas modifié par la méthode appelée

Voici une classe simple illustrant une méthode utilisant le paramètre dans modificateur:

 public class ClassUnderTest
{
  private int GetResult (dans int value1, dans int value2)
  {
    return value1 + value2;
  }
} 

Créer un mock et rendre l'arrangement reste le même qu'avec une méthode privée normale avec le mot-clé ref . Bien sûr, l'attente NonPublic devrait être utilisée pour faire l'arrangement comme ceci:

 var mockObj = Mock.Create  (Behavior.CallOriginal);
Mock.NonPublic.Arrange  (mockObj, "GetResult", ArgExpr.Ref (ArgExpr.IsAny  ()), ArgExpr.Ref (ArgExpr.IsAny  ())). Renvoie (42); [19659052] Améliorations des extensions JustMock pour TFS 2015 et TFS 2018 

Lors de la préparation de la version, l'équipe JustMock a apporté plusieurs améliorations aux extensions pour TFS 2015 et TFS 2018, et elles sont déjà disponibles en téléchargement à partir de l'équipe Visual Studio.

Découvrez la dernière version et partagez vos commentaires

Assurez-vous d'essayer la dernière version de JustMock et retournez-nous vos commentaires . Il est déjà disponible en téléchargement sur votre compte.

Vous n'êtes pas un client JustMock? N'hésitez pas à télécharger un essai gratuit de 30 jours .

Télécharger un essai gratuit


Les commentaires sont désactivés en mode prévisualisation.

[ad_2]

Source link