string theString = "";
theString.Should().NotBeNull(); // 不为 null
theString.Should().BeEmpty(); // 为空字符串
theString.Should().BeNullOrWhiteSpace(); // null 或者 空白 (空白字符也会当成空)
theString.Should().HaveLength(0);
//下面的这些都过不了
using (new AssertionScope())
{
theString.Should().NotBeNullOrWhiteSpace();
theString.Should().BeNull(); // 为 null
theString.Should().NotBeEmpty(); // 不为空字符串
}
var s1 = "This is a String";
s1.Should().Be("This is a String"); // 相等
s1.Should().NotBe("This is another String"); //不相等
s1.Should().BeEquivalentTo("THIS IS A STRING"); // 等于, 两个对象 判断属性值一样的话也可以用这个
s1.Should().NotBeEquivalentTo("THIS IS ANOTHER STRING"); // 不等
s1.Should().BeOneOf(
"That is a String",
"This is a String"
); // 是其中的一个字符串
s1.Should().Contain("is a"); // 包含 任意个数
s1.Should().Contain("is a", Exactly.Once()); // 包含 只有一个
s1.Should().Contain("is a", AtMost.Times(5)); // 包含 最多5个
s1.Should().Contain("is a", LessThan.Twice()); // 包含小于 2 次
s1.Should().NotContainAll("can", "contain", "some", "but", "not", "all"); //所有的这些 字符串都不包含
s1.Should().NotContainAny("can't", "contain", "any", "of", "these"); // 任何一个都不包含
s1.Should().StartWith("This"); // 开始于 this
s1.Should().StartWithEquivalent("this");// 开始于 this 忽略了大小写
s1.Should().EndWith("a String"); //结束于 a String
s1.Should().EndWithEquivalent("a string"); //结束于 a String 忽略了大小写
s1.Should().NotContainEquivalentOf("HeRe ThE CaSiNg Is IgNoReD As WeLl"); // 不等于
s1.Should().ContainEquivalentOf("WE DONT CARE ABOUT THE CASING", LessThan.Twice()); // 包含 这个字符串 小于 2 次
//下面的断言都是会出错
using (new AssertionScope())
{
s1.Should().Contain("is a", AtLeast.Twice());
s1.Should().Contain("is a", MoreThan.Thrice());
s1.Should().ContainAll("should", "contain", "all", "of", "these"); // 包含 方法里面的所有字符串
s1.Should().ContainAny("any", "of", "these", "will", "do"); // 包含 方法里面的所有字符串
s1.Should().NotContain("is a"); // 不包含 is a
s1.Should().ContainEquivalentOf("WE DONT CARE ABOUT THE CASING");
s1.Should().ContainEquivalentOf("WE DONT CARE ABOUT THE CASING", Exactly.Once());
s1.Should().ContainEquivalentOf("WE DONT CARE ABOUT THE CASING", AtLeast.Twice());
s1.Should().ContainEquivalentOf("WE DONT CARE ABOUT THE CASING", MoreThan.Thrice());
s1.Should().NotStartWith("This"); // 没有开始于 This
s1.Should().NotStartWithEquivalentOf("this"); // 没有开始于 this 忽略了大小写
s1.Should().NotEndWith("a String"); // 没有结束于 a string
s1.Should().NotEndWithEquivalentOf("a string"); // 没有结束于 a string 忽略了大小写
}
☆ 星号代替零个、单个或多个字符, ? 号 代表一个任意字符
var emailAddress = "ab@malema.com";
emailAddress.Should().Match("*@*.com"); // 断言 是不是符合这个通配符
emailAddress.Should().Match("ab@malema.co?"); // 断言成功
emailAddress.Should().NotMatch("*@*.com"); //出错
var someString = "h abc.";
someString.Should().MatchRegex("h.*\\sabc.$"); // 断言是不是符合这个正则表达式
someString.Should().NotMatchRegex(".*earth.*"); // 断言不匹配这个正则表达式