Nunit: Não é possível testar o tipo de objeto com restrição

Criado em 8 jan. 2018  ·  4Comentários  ·  Fonte: nunit/nunit

Olá, não posso testar tipos de objetos com uma restrição, mas o assert clássico ainda está funcionando

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

Comentários muito úteis

Olá @TobiasSekan. Eu diria que isso é esperado. Na afirmação clássica, você está apenas comparando dois tipos. A restrição "_testa se o valor real é do tipo fornecido como um argumento ou um tipo derivado._" e o tipo do valor typeof(TestEnum).GetEnumUnderlyingType() é System.RuntimeType .

Semelhante, o seguinte também falharia (com o mesmo tipo de mensagem)

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

enquanto que

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

trabalharia. Você sempre pode reformular a restrição como Assert.That(typeof(TestEnum).GetEnumUnderlyingType(), Is.EqualTo(typeof(ushort)));

Todos 4 comentários

Qual plataforma e qual versão de nunit, por favor?

Olá @TobiasSekan. Eu diria que isso é esperado. Na afirmação clássica, você está apenas comparando dois tipos. A restrição "_testa se o valor real é do tipo fornecido como um argumento ou um tipo derivado._" e o tipo do valor typeof(TestEnum).GetEnumUnderlyingType() é System.RuntimeType .

Semelhante, o seguinte também falharia (com o mesmo tipo de mensagem)

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

enquanto que

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

trabalharia. Você sempre pode reformular a restrição como Assert.That(typeof(TestEnum).GetEnumUnderlyingType(), Is.EqualTo(typeof(ushort)));

Boa captura @mikkelbu. Vou fechar isso como not a bug . @TobiasSekan Eu posso ver a confusão, mas efetivamente seu primeiro parâmetro é TypeOf<Type> not ushort .

Ok, obrigado pela informação

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

UyttenhoveSimon picture UyttenhoveSimon  ·  3Comentários

xplicit picture xplicit  ·  5Comentários

ffMathy picture ffMathy  ·  3Comentários

ChrisMaddock picture ChrisMaddock  ·  3Comentários

jnm2 picture jnm2  ·  4Comentários