xUnit之Equal(2)
继续上节,列举一下Equal测试的类型:
1. ArrayTest
[Fact]
public void Array()
{
string[] expected = { "@", "a", "ab", "b" };
string[] actual = { "@", "a", "ab", "b" };
Assert.Equal(expected, actual);
Assert.Throws<NotEqualException>(() => Assert.NotEqual(expected, actual));
Assert.Equal("a", "b");
}
2. Null
[Fact]
public void EqualsNull()
{
Assert.Equal<object>(null, null);
}
3. Numeric Test
[Fact]
public void DecimalEqualsFails()
{
decimal expected = 25;
decimal actual = 42;
Assert.Throws<EqualException>(() => Assert.Equal(expected, actual));
}
[Fact]
public void EqualsSByte()
{
const sbyte valueType = 35;
const sbyte referenceValue = 35;
Assert.True(valueType == referenceValue);
Assert.Equal(referenceValue, valueType);
Assert.Equal<sbyte>(valueType, 35);
Assert.Equal<sbyte>(referenceValue, 35);
}
4.Using a comparer
[Fact]
public void EqualsStringIgnoreCase()
{
string expected = "TestString";
string actual = "testString";
Assert.False(actual == expected);
Assert.NotEqual(expected, actual);
Assert.Equal(expected, actual, StringComparer.CurrentCultureIgnoreCase);
}
5.Null? Test
[Fact]
public void NullableValueTypesCanBeNull()
{
DateTime? dt1 = null;
DateTime? dt2 = null;
Assert.Equal(dt1, dt2);
}
6.Precision Test
[Fact]
public void AssertEqualWithDecimalWithPrecision()
{
Assert.Equal(0.11111M, 0.11444M, 2);
}