Java 类似junit测试行为不同的原因

Java 类似junit测试行为不同的原因,java,junit,pangram,Java,Junit,Pangram,我对通用pangram程序使用以下两个测试。但是test2通过了,而test3失败了 @Test public void test2(){ Pangram4 pangram4 = new Pangram4(" b cd x rs ijk pno f vu"); Set<Character> actual = pangram4.getMissingAlphabets(); Set <Character>exp

我对通用pangram程序使用以下两个测试。但是test2通过了,而test3失败了

    @Test
    public void test2(){
        Pangram4 pangram4 = new Pangram4(" b cd x rs  ijk pno f vu");
        Set<Character> actual = pangram4.getMissingAlphabets();
        Set <Character>expected = new HashSet<Character>();
        expected.add('a');
        expected.add('e');
        expected.add('g');
        expected.add('h');
        expected.add('l');
        expected.add('m');
        expected.add('q');
        expected.add('t');
        expected.add('w');
        expected.add('y');
        expected.add('z');

        assertEquals(expected,actual);
    }


    @Test
    public void test3(){
        Pangram4 pangram4 = new Pangram4("The quick browndoga lazy.");
        Set<Character> actual = pangram4.getMissingAlphabets();
        Set<Character> expected = new HashSet<Character>();
        expected.add('f');
        expected.add('o');
        expected.add('x');
        expected.add('j');
        expected.add('u');
        expected.add('m');
        expected.add('p');
        expected.add('s');
        expected.add('o');
        expected.add('v');
        expected.add('e');
        expected.add('r');          
        assertEquals(expected, actual);
    }
原因可能是什么?这里我只给出了测试方法,没有给出整个junit类。请使用任何带有GetMissingleters方法的pangram程序,该程序返回集合并相应地更改测试方法。

在您的测试用例test3中,您需要一个o:

字母o在测试用例字符串中,即quick browndoga lazy。。结果是预期集合包含o,而实际集合不包含o。这会导致错误的结果


正如@JasonC所提到的,r也存在同样的问题。

甚至添加了两次-可以肯定的是?r也存在。而U,lol。。。我想就是这样。这是至少半个小时以来我玩得最开心的一次。谢谢,我没看到!首先,我只从完美的pangram中删除了狐狸,然后将其添加到预期的pangram中。我没有看到o也是棕色的。然后,我删除了跳转,并试图将其添加到预期中。我没有看到这些字母是重复的。而且测试集中的很多字母实际上都在句子中。。。像o和r。
expected.add('o');