@ После @ перед тем, как не работать в тестовом режиме

Я начал тестирование, и теперь я хочу использовать@After, @Before а также@Test но мое приложение запускает только@Before метод и дает вывод на консоль

before

Однако, если я удалю@After а также@Before он запускает @Test. Мой код здесь:

<code>public class TestPractise extends AbstractTransactionalDataSourceSpringContextTests{

    @Before
    public void runBare(){
        System.out.println("before");
    }

    @Test
    public void testingMethod(){
        System.out.println("testing");
    }

    @After
    public void setDirty(){
        System.out.println("after");
    }
}
</code>

Почему нет@After, @Test а также@before работает одновременно?

Ответы на вопрос(3)

Решение Вопроса

AbstractTransactionalDataSourceSpringContextTests Класс заставляет использовать старый синтаксис JUnit 3.x, что означает, что любая из аннотаций JUnit 4 не будет работать.

Ваш методrunBare() выполняется не из-за@Before аннотации, но потому что он названrunBare(), который является методом, предоставляемымConditionalTestCase и ЮнитTestCase учебный класс.

Итак, у вас есть 2 решения:

Use the AlexR answer to use JUnit 4 tests and Spring; Keep your inheritance of AbstractTransactionalDataSourceSpringContextTests, but use the onSetUp and onTearDown methods instead of the @Before and @After methods.
 20 июн. 2017 г., 08:08
Получили ту же проблему, смешивая JUnit 4 и 5. Проверьте импорт на наличие аннотаций и убедитесь, что они совпадают.

@BeforeEach вместо@Before а также@AfterEach вместо@After.

 25 июл. 2018 г., 11:48
Не могли бы вы немного объяснить, почему и как это решает проблему?
 26 июл. 2018 г., 09:13
В моем случае мой & quot; @ Before & quot; и & quot; @ После & quot; код не работал, но он работал, когда я заменил & quot; @ Before & quot; с & quot; @ BeforeEach & quot; и & quot; @ После & quot; и & quot; @ AfterEach & quot ;.
 26 июл. 2018 г., 09:19
Просто более конкретные имена работают одинаково. Но поддержка (Выполнение) зависит от версии Junit.

а JUnit 4 был представлен много лет назад, я предлагаю вам использовать аннотации вместо наследования.

Итак, аннотируйте свой класс с@RunWith(SpringJUnit4ClassRunner.class), Удалитьextends AbstractTransactionalDataSourceSpringContextTests.

Не забудьте сделать@До и методы @Afterstatic

Теперь это должно работать.

Даже если вы хотите расширить классы абстрактных тестов Spring, хотя бы обратите внимание, что некоторые из них устарели. Например классAbstractTransactionalDataSourceSpringContextTests устарела.

 15 мая 2012 г., 08:56
Здравствуйте, user1147361: вы можете найти пример здесь с исходным кодом:ledohoanglong.wordpress.com/2012/01/02/…
 abhishek ameta14 мая 2012 г., 12:01
Не могли бы вы предоставить мне пример для @RunWith (SpringJUnit4ClassRunner.class) ??
 14 мая 2012 г., 14:46
Извините за задержку. Пример очень прост. Просто удалите & quot; Расширяет ... & quot; и добавить аннотацию, которую я написал в классе. Затем попробуйте запустить тест.
 abhishek ameta14 мая 2012 г., 12:06
если вы напишите пример для AbstractTransactionalDataSourceSpringContextTests, это было бы хорошо ..

Ваш ответ на вопрос