μλ νμΈμ, μ μ½ μ‘°κ±΄μ΄ μλ κ°μ²΄ μ νμ ν μ€νΈν μ μμ§λ§ ν΄λμ μ΄μ€μ μ μ¬μ ν ββμλν©λλ€.
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>());
μ΄λ€ νλ«νΌκ³Ό μ΄λ€ nunit λ²μ μ λΆνν©λκΉ?
μλ
νμΈμ @TobiasSekanμ
λλ€. λλ μ΄κ²μ΄ μμλλ€κ³ λ§νκ³ μΆμ΅λλ€. κ³ μ μ μΈ μ£Όμ₯μμ λΉμ μ λ¨μ§ λ κ°μ§ μ νμ λΉκ΅νκ³ μμ΅λλ€. μ μ½ μ‘°κ±΄ "_tests μ€μ κ°μ΄ μΈμλ‘ μ 곡λ μ νμΈμ§ νμλ μ νμΈμ§ μ¬λΆλ₯Ό ν
μ€νΈν©λλ€._" κ° typeof(TestEnum).GetEnumUnderlyingType()
μ System.RuntimeType
μ
λλ€.
μ μ¬ν λ€μλ μ€ν¨ν©λλ€(κ°μ μ’ λ₯μ λ©μμ§ ν¬ν¨).
Assert.That(typeof(string), Is.TypeOf<string>());
λ°λ©΄
Assert.That("", Is.TypeOf<string>());
μλ ν κ²μ΄λ€. μ μ½ μ‘°κ±΄μ νμ Assert.That(typeof(TestEnum).GetEnumUnderlyingType(), Is.EqualTo(typeof(ushort)));
λ‘ λ°κΏ μ μμ΅λλ€.
μ’μ μΊμΉ @mikkelbu. not a bug
λ‘ λ«κ² μ΅λλ€. @TobiasSekan νΌλμ λ³Ό μ μμ§λ§ μ€μ λ‘ μ²« λ²μ§Έ λ§€κ° λ³μλ TypeOf<Type>
μλλΌ ushort
μ
λλ€.
κ·Έλ κ΅°μ μ 보 κ°μ¬ν©λλ€
κ°μ₯ μ μ©ν λκΈ
μλ νμΈμ @TobiasSekanμ λλ€. λλ μ΄κ²μ΄ μμλλ€κ³ λ§νκ³ μΆμ΅λλ€. κ³ μ μ μΈ μ£Όμ₯μμ λΉμ μ λ¨μ§ λ κ°μ§ μ νμ λΉκ΅νκ³ μμ΅λλ€. μ μ½ μ‘°κ±΄ "_tests μ€μ κ°μ΄ μΈμλ‘ μ 곡λ μ νμΈμ§ νμλ μ νμΈμ§ μ¬λΆλ₯Ό ν μ€νΈν©λλ€._" κ°
typeof(TestEnum).GetEnumUnderlyingType()
μSystem.RuntimeType
μ λλ€.μ μ¬ν λ€μλ μ€ν¨ν©λλ€(κ°μ μ’ λ₯μ λ©μμ§ ν¬ν¨).
λ°λ©΄
μλ ν κ²μ΄λ€. μ μ½ μ‘°κ±΄μ νμ
Assert.That(typeof(TestEnum).GetEnumUnderlyingType(), Is.EqualTo(typeof(ushort)));
λ‘ λ°κΏ μ μμ΅λλ€.