通过在Eclipse中突出显示方法名称,将测试方法添加到现有测试用例

时间:2010-06-09 16:23:42

标签: java eclipse junit testing case

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

大卫

3 个答案:

答案 0 :(得分:2)

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

您应该拥有完全测试每个方法所需的测试数量,并且每个测试应仅测试方法行为的一个方面。因此,如果您需要两到三次或四次测试,那很好。

这让我断言你所寻求的功能并不是非常有用,因为无论如何你需要增加更多的测试方法!

答案 1 :(得分:1)

不可能。此外,一种方法并不意味着您只有一个测试用例。正如@Danny所说,您需要提出几个测试用例来测试该方法的每个可能的有用场景。如果将所有这些测试场景组合成一个大的测试用例,那么它就不会太有用了。这是因为当测试用例失败时,您将不得不深入研究测试用例,以了解哪种情况失败,这很麻烦。

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

答案 2 :(得分:1)

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

关闭主题:

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

  1. 将基于javadoc和期望的可能测试方案列为测试错误消息。这可以作为情景索引,因此我可以轻松回去研究我可能错过的情景。
  2. 在为变量名称建立索引后,逐段实施每个场景的测试。

    @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);
    

    }