如果有回文,是否有更好的测试方法/解决方案

时间:2019-07-03 07:03:22

标签: c# unit-testing caliburn micro

我有一个问题,也没有问题。

  1. 问题/问题:如您在我的代码下方看到的那样,我测试了该词是否是回文,但是我不确定这是否正确,因为它看起来与我相似。

启动程序并输入例如“很抱歉我看见了爱神”,它说这是回文,但在单元测试中没有。

  1. 问题:有没有人有任何示例,或者可以链接我的页面或内容,我可以在其中使用Caliburn.Micro学习MVVM。谢谢

最后一种方法IsSentencePalindrome也不说是真的(应该通过测试),我尝试使用LINQ Reverse,但是输出仍然相同。

 [TestMethod]
        public void IsUpperCasePalindrome()
        {
            var textA = "TOT".ToCharArray();
            var textB = textA.Reverse();

            bool isPalindrome = textA.SequenceEqual(textB);

            Assert.IsTrue(isPalindrome);
        }

        [TestMethod]
        public void IsNotPalindrome()
        {
            var textA = "Example".ToCharArray();
            var textB = textA.Reverse();

            bool isPalindrome = textA.SequenceEqual(textB);

            Assert.IsFalse(isPalindrome);
        }

        [TestMethod]
        public void IsUpperLowerCasePalindrome()
        {
            var textA = "eXaMplE".ToCharArray();
            var textB = textA.Reverse();

            bool isPalindrome = textA.SequenceEqual(textB);

            Assert.IsFalse(isPalindrome);
        }

        [TestMethod]
        public void IsSpecialCharachterPalindrome()
        {
            var textA = "A$AP".ToCharArray();
            var textB = textA.Reverse();

            bool isPalindrome = textA.SequenceEqual(textB);

            Assert.IsFalse(isPalindrome);
        }

        [TestMethod]
        public void IsLowerCasePalindrome()
        {
            var textA = "radar".ToCharArray();
            var textB = textA.Reverse();

            bool isPalindrome = textA.SequenceEqual(textB);

            Assert.IsTrue(isPalindrome);
        }
        [TestMethod]
        public void IsDoubleWordPalindrome()
        {
            var textA = "radarradar".ToCharArray();
            var textB = textA.Reverse();

            bool isPalindrome = textA.SequenceEqual(textB);

            Assert.IsTrue(isPalindrome);
        }
        [TestMethod]
        public void IsSentencePalindrome()
        {
            var textA = "Sore was I ere I saw Eros.".ToCharArray();
            var textB = textA.Reverse();

            bool isPalindrome = textA.SequenceEqual(textB);

            Assert.IsTrue(isPalindrome);
        }

我希望输出通过7个测试,但是实际输出是6个测试通过了,而1个失败,即最后一个测试(IsSentencePalindrome)。

1 个答案:

答案 0 :(得分:1)

Sore was I ere I saw Eros.

不是回文,因为:

  • Sore Eros不是(区分大小写)回文- Sore eroS
  • 最后一个
相关问题