Более легкий способ загрузить настройки по умолчанию из набора (в реальной жизни я использую его для заполнения настроек из любого источника, включая командную строку, параметры ClickOnce URL и т.д.):
public static void LoadFrom(this ApplicationSettingsBase settings, NameValueCollection configuration)
{
if (configuration != null)
foreach (string key in configuration.AllKeys)
if (!String.IsNullOrEmpty(key))
try
{
settings[key] = configuration.Get(key);
}
catch (SettingsPropertyNotFoundException)
{
// handle bad arguments as you wish
}
}
Пример:
Settings.Default.LoadFrom(new NameValueCollection() { { "Setting1", "Value1" }, { "Setting2", "Value2" } });
У меня для вас есть 4 варианта:
Перейдите в представление «Пакет» слева, выберите оба файла и нажмите F6. Он должен переместить их оба в нужное место.
Временно сделайте класс общедоступным, прежде чем выполнять рефакторинг, а затем переключитесь обратно.
Попробуйте сначала переместить тест. Кажется, я помню, что это позволяет избежать нарушения каких-либо зависимостей.
Существует плагин (я думаю, что это toggleTest или unitTest - у меня были установлены оба из них), который исправляет Переместите Refactor, чтобы тоже принести с собой тест. Сработало отлично. К сожалению, похоже, что они могут не работать с последней версией IDEA.
Поведение, которое вы описываете, совершенно нормально.
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
(Я знаю, что это пакет1
и пакет2
, но я хочу сосредоточить внимание на структуре папок.
Надеюсь, я смогу вам помочь!