Как создать живой шаблон для Assertions.assertThrows?

Я конвертирую где-то около 1000 тестов JUnit с помощью

@Test(expected=SomeException.class)
public void testIt() throws SomeException {
  doSomeStuff();
}

к JUnit Jupiter API

@Test
void testIt() {
  Assertions.assertThrows(SomeException.class, () -> {
    doSomeStuff();    
  });
}

Я знаю, что в Intellij есть магия «Surround With», живые шаблоны или что-то, что может сделать этот процесс немного более автоматизированным?

Я всегда мог бы написать сценарий или что-то в этом роде, но я полагаю, что, возможно, есть способ использовать встроенную функциональность Intellij, чтобы упростить эту задачу.

Есть идеи?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Одним из способов переноса нескольких тестов Junit4 на Junit5 является OpenRewrite.

Он будет иметь несколько предопределенных рецептов для общих задач, таких как Миграция Junit4 на Junit5.

Если у вас есть проект maven без spring, вы можете добавить следующее в свой pom.xml.

<build>
  <plugins>
    <plugin>
      <groupId>org.openrewrite.maven</groupId>
      <artifactId>rewrite-maven-plugin</artifactId>
      <version>4.44.0</version>
      <configuration>
        <activeRecipes>
            <recipe>org.openrewrite.java.testing.junit5.JUnit5BestPractices</recipe>
        </activeRecipes>
      </configuration>
      <dependencies>
        <dependency>
          <groupId>org.openrewrite.recipe</groupId>
          <artifactId>rewrite-testing-frameworks</artifactId>
          <version>1.36.0</version>
        </dependency>
      </dependencies>
    </plugin>
  </plugins>
</build>

Краткое объяснение:

<activeRecipes>
   <recipe>org.openrewrite.java.testing.junit5.JUnit5BestPractices</recipe>
</activeRecipes>

Эта часть активирует рецепт перезаписи junit, который находится в зависимости org.openrewrite.recipe:rewrite-testing-frameworks.

Если вы используете Spring или Spring-Boot, вам понадобится активный рецепт org.openrewrite.java.spring.boot2.SpringBoot2JUnit4to5Migration и следующая зависимость.

<dependency>
  <groupId>org.openrewrite.recipe</groupId>
  <artifactId>rewrite-spring</artifactId>
  <version>4.35.0</version>
</dependency>

Если вы используете Gradle, вам следует ознакомиться с официальной документацией.

Через mvn rewrite:dryRun вы можете увидеть результаты в .patch файле.

Через mvn rewrite:run миграция будет выполнена. Если у вас есть система контроля версий, вы всегда можете запустить ее без пробного прогона, потому что вы можете увидеть различия в инструменте сравнения вашей системы контроля версий.

Другие вопросы по теме