Nunit: No se puede probar el tipo de objeto con restricción

Creado en 8 ene. 2018  ·  4Comentarios  ·  Fuente: nunit/nunit

Hola, no puedo probar tipos de objetos con una restricción, pero la afirmación clásica sigue 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

Comentario más útil

Hola @TobiasSekan. Yo diría que esto es lo esperado. En la afirmación clásica, solo está comparando dos tipos. La restricción "_prueba si el valor real es del tipo proporcionado como argumento o un tipo derivado._" y el tipo del valor typeof(TestEnum).GetEnumUnderlyingType() es System.RuntimeType .

Similar lo siguiente también fallaría (con el mismo tipo de mensaje)

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

mientras que

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

trabajaría. Siempre puede reformular la restricción como Assert.That(typeof(TestEnum).GetEnumUnderlyingType(), Is.EqualTo(typeof(ushort)));

Todos 4 comentarios

¿Qué plataforma y qué versión de nunit, por favor?

Hola @TobiasSekan. Yo diría que esto es lo esperado. En la afirmación clásica, solo está comparando dos tipos. La restricción "_prueba si el valor real es del tipo proporcionado como argumento o un tipo derivado._" y el tipo del valor typeof(TestEnum).GetEnumUnderlyingType() es System.RuntimeType .

Similar lo siguiente también fallaría (con el mismo tipo de mensaje)

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

mientras que

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

trabajaría. Siempre puede reformular la restricción como Assert.That(typeof(TestEnum).GetEnumUnderlyingType(), Is.EqualTo(typeof(ushort)));

Buen partido @mikkelbu. Voy a cerrar esto como not a bug . @TobiasSekan Puedo ver la confusión, pero efectivamente su primer parámetro es TypeOf<Type> no ushort .

De acuerdo, gracias por la información.

¿Fue útil esta página
0 / 5 - 0 calificaciones