簡體   English   中英

創建 Junit 測試用例后,“Run as Junit Test”消失

[英]After creation of Junit test cases, the "Run as Junit Test" disappears

我使用 Eclipse 中的菜單選項制作了一個 Junit 測試用例。 我得到了“作為 JUnit 測試運行”的選項。 但是當我完成更改后,我注意到“Run as JUnit Test”消失了。

在進一步分析中,我發現我最初的 TestClass 定義如下:

public class SampleTest
{
....
}

但我不得不改變類定義如下

public class SampleTest<T>   
{
..
}

所以我注意到添加泛型正在創建行為。 我查看了以下鏈接:

Run As JUnit 未出現在 Eclipse 中 - 使用 JUnit4

缺少“作為 JUnit 測試運行”

public class SampleTest<T>
{
..
}

但這些鏈接與我的問題關系不大。 所以,我需要了解包括泛型與行為有關的原因。

為了運行 JUnit 測試類,Eclipse 需要

  1. 通過調用其默認構造函數來創建測試類的實例,
  2. 調用該實例上的所有@Test方法

問題出在第 1 步:Eclipse 不知道在構造函數中使用哪種類型T
它應該使用new SampleTest<Object>()還是new SampleTest<WhatEver>()
所以它決定它不是一個有效的 JUnit 測試類,並且不提供Run as JUnit Test選項。

我可能無法解釋為什么泛型會從一開始就刪除 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 {

        ...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM