# Fluent Assertions string 字符串

判断是不是空字符串

            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.*"); // 断言不匹配这个正则表达式
下一篇:number数字断言
最近更新的
...