Comment Testez-vous que IEnumerable a tous les articles de SomeClass de classe dans MbUnit?

StackOverflow https://stackoverflow.com/questions/1082224

  •  22-08-2019
  •  | 
  •  

Question

Comment Testez-vous qu'un IEnumerable a tous les articles de SomeClass de classe MbUnit?

Je l'ai utilisé une fois de Visual Studio Unit Test Framework et trouvé CollectionAssert.AllAreInstancesOfType ou quelque chose à vérifier.

Mais comment puis-je le fais dans MbUnit?

Était-ce utile?

La solution

Je ne vois rien dans le MBUnit CollectionAssert classe qui pourrait vous aider ici

Vous pouvez facilement écrire votre propre bien (non testé).

public class MyCollectionAssert
{
  public void CollectionAssert(IEnumerable source, Predicate<object> assertion)
  {
    foreach(var item in source)
    {
       Assert.IsTrue(assertion(item));
    }
  }

  public void AllAreInstancesOfType(IEnumerable source, Type type)
  {
    return CollectionAssert(source, o => o.GetType() == type);
  }
}

Je suppose que vous voulez dire en fait IEnumerable et non IEnumerable<SomeClass> que le compilateur applique la sécurité de type. Pour utiliser cet appel de méthode d'extension:

MyCollectionAssert.AllAreInstancesOfType(myList, typeof(SomeClass));

Autres conseils

Jeff Brown , le développeur principal du projet Gallio a ouvert une question pour cette demande. Nous allons mettre en œuvre quelques affirmations dédiées: Assert.ForAll et Assert.Exists. Ils devraient être disponibles dans la prochaine version de Gallio / MbUnit (v3.1), mais vous serez en mesure de les utiliser plus tôt en téléchargeant la construction quotidienne dans quelques jours (Restez à l'écoute).

Edit: A partir de Gallio / MbUnit v3.1.213 , vous pouvez utiliser Assert.ForAll<T>(IEnumerable<T>, Predicate<T>).

[Test]
public void AllMyObjectsShouldBeStrings()
{
  var list = GetThemAll();
  Assert.ForAll(list, x => x.GetType() == typeof(string));
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top