【问题标题】:Add a test method to existing test case by highlighting the method name in Eclipse通过在 Eclipse 中突出显示方法名称,将测试方法添加到现有测试用例
【发布时间】:2010-06-09 16:23:42
【问题描述】:

不确定这是否可行,但如果可行,它会为我节省很多时间。当我在 Eclise 中创建 Junit4 测试用例时,我通常不会首先包含我想测试的所有方法,然后,我想将未测试的方法或新方法添加到测试用例中。目前,我通过在现有测试用例类中输入新的测试方法来做到这一点。有没有办法让我突出显示方法名称,如果不存在则创建一个测试用例或添加到 Eclipse 中的现有测试用例? 提前致谢!

大卫

【问题讨论】:

    标签: java eclipse junit testing case


    【解决方案1】:

    没有。但老实说,无论如何,您不应该将测试与方法进行一对一的映射。我认为 Eclipse“Create JUnit TestCase”对话框的第二页设计得很糟糕,因为它给人的印象是一对一映射在某种程度上很有用。

    您应该进行完全测试每个方法所需的测试数量,并且每个测试应该只测试方法行为的一个方面。所以如果你需要两三个或四个测试,那很好。

    这使我断言您寻求的功能不会有太大用处,因为无论如何您都需要添加更多测试方法!

    【讨论】:

      【解决方案2】:

      不可能。此外,一种方法并不意味着您只有一个测试用例。正如@Danny 所说,您将需要提出几个测试用例来测试该方法的所有可能有用的场景。如果您将所有这些测试场景组合成一个大测试用例,那么它不会太有用。这是因为当该测试用例失败时,您必须深入挖掘测试用例才能知道哪个场景失败,这很麻烦。

      要测试一种方法,通常(如果不是,总是)拥有许多小测试用例而不是一个大测试用例。当它失败时,您可以立即确切地知道哪个测试场景失败了。

      【讨论】:

      • 感谢您的两个回答。我知道我需要对一种方法有许多小测试用例,而不是尝试进行一对一的映射。我的意思是,看到您在测试用例中为方法 getMoney() 创建了一个测试方法,现在您想为同一方法添加另一个测试方法。目前,我需要通过输入测试用例来做到这一点。我可以突出显示getMoney(),右键单击,如果存在的话,在测试用例中创建另一个测试方法。我想我在这里太懒了,:-)
      【解决方案3】:

      像往常一样创建新的 JUnit,但为类使用另一个名称,例如 JavaClassTest2,然后复制粘贴生成的方法。

      题外话:

      我更喜欢“一对一”映射,除非我找到一种更好的方法,每个场景使用一种方法。我想避免这么多由测试方法名称标识的测试场景。我所做的就是遵循这种模式:

      1. 根据 javadoc 和期望列出可能的测试场景作为测试错误消息。这可用作情景索引,这样我就可以轻松地回过头来研究我可能错过了哪个情景。
      2. 在为变量名索引 step1 之后,按段落为每个场景实施测试。

        @Test public void testRemoveHtmlTags() {
        String[] test = {
                "0. Null argument test failed.",
                "1. Case sensitive test failed.",
                "2. Case insensitive test failed." };
        
        
        try {
            StringUtils.removeHtmlTags(null);
            fail(test[0]);
        } catch (IllegalArgumentException iae) {}
        
        
        String input1 = "The quick Brown <b>Fox</b> Jumps&nbsp;Over The Lazy Dog. &gt;&lt;";
        String output1 = StringUtils.removeHtmlTags(input1);
        assertEquals(test[1], "The quick Brown Fox Jumps Over The Lazy Dog. ><", output1);
        
        
        String input2 = "The quick Brown <B>Fox</b> Jumps&nbsp;Over The Lazy Dog. &gt;&lt;";
        String output2 = StringUtils.removeHtmlTags(input2);
        assertEquals(test[2], "The quick Brown Fox Jumps Over The Lazy Dog. ><", output2);
        

        }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-16
        • 1970-01-01
        • 2012-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多