После создания тестовых случаев Junit «Запуск от имени Junit Test» исчезает - PullRequest
0 голосов
/ 04 января 2019

Я сделал тестовый пример Junit, используя опции меню в Eclipse. Я получал опцию «Запуск от имени JUnit Test». Но когда я закончил с изменениями, я заметил, что «Запуск от имени JUnit Test» исчез.

При дальнейшем анализе я обнаружил, что изначально мое определение TestClass было таким, как показано ниже:

public class SampleTest
{
....
}

Но мне пришлось изменить определение класса следующим образом

public class SampleTest<T>   
{
..
}

Итак, я заметил, что добавление общего вида - это создание поведения. Я посмотрел на следующие ссылки:

Запуск от имени JUnit не отображается в Eclipse - используется JUnit4

Отсутствует «Выполнить как тест JUnit»

public class SampleTest<T>
{
..
}

Но эти ссылки меньше связаны с моей проблемой. Итак, мне нужно понять причину, что в том числе Generics связано с поведением.

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Для запуска тестового класса JUnit Eclipse необходимо

  1. создайте экземпляр вашего тестового класса, вызвав его конструктор по умолчанию,
  2. вызов всех методов @Test в этом экземпляре

Здесь проблема в шаге 1: Eclipse не знает, какой тип T использовать в конструкторе.
Должно ли оно использовать new SampleTest<Object>() или new SampleTest<WhatEver>()?
Поэтому он решает, что это недопустимый тестовый класс JUnit и не предлагает параметр Запуск от имени JUnit Test .

0 голосов
/ 04 января 2019

Я не могу добавить, почему Generics удаляет 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 {

        ...
    }
}
...