, InlineData
kullanan bu test xUnit başarısız: Bu sürexUnit.net: Neden bu 2 eşdeğer test farklı sonuçlara sahip? Nedense
[Theory]
[InlineData("\uD800", 1)]
public static void HasLength(string s, int length)
{
Assert.Equal(length, s.Length);
}
, MemberData
kullandığı geçer:
public static IEnumerable<object[]> HasLength_TestData()
{
yield return new object[] { "\uD800", 1 };
}
[Theory]
[MemberData(nameof(HasLength_TestData))]
public static void HasLength(string s, int length)
{
Assert.Equal(length, s.Length);
}
Bunun nedeni nedir? XUnit.net'te bir hata keşfettim mi? (Ben \uD800
bir surrogate character olmasından ile ilgili bir şey olabilir düşünüyorum ve InlineData
aracılığıyla geçerken bir şekilde 2 karakterlik tercüme vurmayacak. Rağmen neden emin.)
Ah, bu şimdi çok daha mantıklı geliyor - bu yüzden xUnit'te bir hata değil, ancak bu .NET Framework'e yerleşik. Cevabınız için teşekkürler! –