创建Junit测试用例后,“以Junit测试运行”消失

时间:2019-01-04 11:38:56

标签: java eclipse junit junit4

我已经使用Eclipse中的菜单选项制作了Junit Test案例。 我得到了“以JUnit测试运行”选项。 但是当我完成更改后,我注意到“以JUnit测试运行”消失了。

进一步分析后,我发现我最初的TestClass定义如下:

public class SampleTest
{
....
}

但是我不得不将类定义更改为遵循

public class SampleTest<T>   
{
..
}

所以我注意到添加泛型是在创建行为。 我查看了以下链接:

Run As JUnit not appearing in Eclipse - using JUnit4

Missing "Run as JUnit Test"

public class SampleTest<T>
{
..
}

但是这些链接与我的问题不太相关。 因此,我需要了解包含泛型与行为有关的原因。

2 个答案:

答案 0 :(得分:1)

Eclipse需要运行JUnit测试类

  1. 通过调用其默认构造函数创建测试类的实例
  2. 调用该实例上的所有@Test方法

问题出在步骤1:Eclipse不知道在构造函数中使用哪种类型T
是否应使用new SampleTest<Object>()new SampleTest<WhatEver>()
因此,它确定它不是有效的JUnit测试类 并且不提供作为JUnit测试运行选项。

答案 1 :(得分:0)

对于泛型为何从一开始就删除JUnit的原因,我可能无法添加太多内容,但是通常测试类充当包装器来测试特定的类,例如:

public class Sample<T>
{
    ...
}

public class SampleTest
{

    Sample<TypeHere> sample;

    @Before
    public void setUp() throws Exception {
    }
        sample= new Sample<OrTypeHere>(...);
        ...
    }

    @Test
    public void whenConditionOne_verifyExpectedSituation() throws Exception {

        ...
    }
}