Intellij Idea "Рефакторинг Move" с тестами Junit - PullRequest
9 голосов
/ 13 июля 2009

Кажется, когда я делаю "ход", рефакторинг всех моих тестов джунта лежит на старом месте. Часто я тестирую «упакованные» видимые классы, поэтому они становятся невидимыми, если SUT перемещается в другой пакет.

Вы сдвигаете тесты вручную?

Ответы [ 2 ]

3 голосов
/ 26 августа 2009

У меня есть 4 варианта для вас:

  1. Перейдите к представлению «Пакет» слева, выберите оба файла и нажмите F6. Он должен переместить их обоих в нужное место.

  2. Сделайте класс публичным временно, прежде чем вы сделаете свой рефакторинг, и переключитесь обратно потом.

  3. Попробуйте сначала перенести тест. Кажется, я помню, что избегает нарушения любых зависимостей.

  4. Есть плагин (я думаю, что это toggleTest или unitTest - у меня оба установлены), который исправляет Move Refactor, чтобы также принести с собой тест , Работал отлично. К сожалению, похоже, что они могут не работать с последней версией IDEA.

0 голосов
/ 14 июля 2009

Поведение, которое вы описываете, совершенно нормально.

src/package1/A.java
test/package1/ATest.java

В вашем ATest.java есть import package1.A;.
После вашего рефакторинга это выглядит так:

src/package2/A.java
test/package1/ATest.java

Тестовый код остался там, где он был. Вы не перенесли тестовый код, но ваш исходный код. Это не должно влиять на другие папки (как в вашем примере).
Ссылка в ATest.java теперь должна быть import package2.A;. В противном случае рефакторинг пошел не так.

Тем не менее, ваши тесты должны работать, даже если они находятся в другом каталоге. Это связано с тем, что импорт был изменен методом рефакторинга.

Если вы хотите очистить структуру папок, вам нужно вручную переименовать пакет test/package1 в test/package2 (я знаю, что пакет package1 и package2, но я хочу усилить фокус на структура папок.

Надеюсь, я смогу вам помочь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...