Сохранить текущее состояние и вернуть его после запуска тестов с помощью xUnit - PullRequest
0 голосов
/ 09 февраля 2020

Я создал несколько тестов для моего метода SetDesktopWallpaper () stati c с помощью xUnit.
Как видно из названия, он изменяет обои рабочего стола текущих пользователей.

Вот один из моих тестов.

[Theory]
[InlineData(@".\Resources\JpgWallpaper.jpg")]
[InlineData(@".\Resources\PngWallpaper.png")]
public void Changing_Wallpaper_File_Should_Work(string value)
{
    const string keyName = @"HKEY_CURRENT_USER\Control Panel\Desktop";
    const string keyVal1 = "WallPaper";

    WallChanger.SetDesktopWallpaper(value);

    Assert.Equal(Path.GetFullPath(value), Registry.GetValue(keyName, keyVal1, null).ToString());
}

Я бы хотел сохранить текущие обои в начале тестов и вернуть их в конце. Как этого добиться с помощью xUnit?

1 Ответ

1 голос
/ 09 февраля 2020

В соответствии с предоставленным контекстом, я бы реализовал интерфейс IDisposable в вашем тестовом классе, сохранил информацию, которую вы хотите восстановить, в конструкторе и после утилизировал реализацию шаблона ; восстановление в конце каждого теста.

У вас также есть эта альтернатива с использованием сборочных приборов, но это для более общей настройки / разборки, поэтому я не думаю, что это так go в вашем случае.

Обе альтернативы описаны более подробно здесь .

...