我找不到任何XUnit的例子,尽管我知道JUnit和Moq有这个选项。我有一个字符串,它包含3次相同的子字符串,或者应该,我想Assert。我正在使用XUnit,但我找不到任何方法来以一种干净的方式Assert这一点,使用库提供的东西。是否有任何开箱即用的选项?
i7uaboj41#
为此,我将定义一个扩展方法来进行正确的Assert:
public static class TestUtils { public static void AssertContainsXTimes(this string actual, string expectedSubstring, int times) { var actualRemovedLength = actual.Length - actual.Replace(expectedSubstring, string.Empty).Length; var expectedRemovedLength = expectedSubstring.Length * times; Assert.Equal(expectedRemovedLength, actualRemovedLength); } public static void AssertContainsAtLeastXTimes(this string actual, string expectedSubstring, int times) { var actualRemovedLength = actual.Length - actual.Replace(expectedSubstring, string.Empty).Length; var expectedRemovedLength = expectedSubstring.Length * times; Assert.True(actualRemovedLength >= expectedRemovedLength); } }
下面是示例单元测试的屏幕截图及其结果,以便更好地理解:
1条答案
按热度按时间i7uaboj41#
为此,我将定义一个扩展方法来进行正确的Assert:
下面是示例单元测试的屏幕截图及其结果,以便更好地理解: