Nunit: Impossible de tester le type d'objet avec la contrainte

Créé le 8 janv. 2018  ·  4Commentaires  ·  Source: nunit/nunit

Bonjour, je ne peux pas tester les types d'objets avec une contrainte, mais l'assertion classique fonctionne toujours

enum TestEnum : ushort
{
    one = 0x01,
    two = 0x02
}

// test is okay
Assert.AreEqual(typeof(ushort), typeof(TestEnum).GetEnumUnderlyingType());

// test failed
//
// Expected: <System.Uint16>
//  But was: <System.RuntimeType>
//
Assert.That(typeof(TestEnum).GetEnumUnderlyingType(), Is.TypeOf<ushort>());
notabug

Commentaire le plus utile

Salut @TobiasSekan. Je dirais que c'est prévu. Dans l'assertion classique, vous comparez simplement deux types. La contrainte "_teste si la valeur réelle est du type fourni comme argument ou d'un type dérivé._" et le type de la valeur typeof(TestEnum).GetEnumUnderlyingType() est System.RuntimeType .

Similaire à ce qui suit échouerait également (avec le même type de message)

Assert.That(typeof(string), Is.TypeOf<string>());

tandis que

Assert.That("", Is.TypeOf<string>());

travaillerait. Vous pouvez toujours reformuler la contrainte en Assert.That(typeof(TestEnum).GetEnumUnderlyingType(), Is.EqualTo(typeof(ushort)));

Tous les 4 commentaires

Quelle plateforme et quelle version nunit s'il vous plait ?

Salut @TobiasSekan. Je dirais que c'est prévu. Dans l'assertion classique, vous comparez simplement deux types. La contrainte "_teste si la valeur réelle est du type fourni comme argument ou d'un type dérivé._" et le type de la valeur typeof(TestEnum).GetEnumUnderlyingType() est System.RuntimeType .

Similaire à ce qui suit échouerait également (avec le même type de message)

Assert.That(typeof(string), Is.TypeOf<string>());

tandis que

Assert.That("", Is.TypeOf<string>());

travaillerait. Vous pouvez toujours reformuler la contrainte en Assert.That(typeof(TestEnum).GetEnumUnderlyingType(), Is.EqualTo(typeof(ushort)));

Bonne prise @mikkelbu. Je vais fermer ceci en tant que not a bug . @TobiasSekan Je peux voir la confusion, mais effectivement, votre premier paramètre est TypeOf<Type> non ushort .

D'accord, merci pour l'information

Cette page vous a été utile?
0 / 5 - 0 notes