Я хочу, чтобы модуль тестировал функцию, которая создает/обновляет переменные системной среды. Итак, как я могу проверить вышеуказанные функции с помощью Nunit в C#?Mock System Environment Variable In C#
ответ
Я не могу ответить до mocking переменных окружения, вам нужно написать свой собственный класс Environment
для этого.
В общем объеме переменных среды доступа/настройки вы можете использовать Environment.GetEnvironmentVariable
и Environment.SetEnvironmentVariable
.
Например,
Assert.IsEqual("test", Environment.GetEnvironmentVariable("test-var");
и для установки,
Environment.SetEnvironmentVariable("test-var", "test");
Wrap реальные вызовы, которые создают/обновить переменные среды в классе, который может быть введен в зависимость кода. Вам нужны два звонка:
string value = Environment.GetEnvironmentVariable("variableName")
Environment.SetEnvironmentVariable("variableName", "value");
Этот последний всегда принимает значение в качестве значения.
Тогда класс обертка будет выглядеть примерно так:
class MyEnvironment
{
public string GetVariable(string variableName)
{
return Environment.GetEnvironmentVariable(variableName);
}
public void SetVariable(string variableName, string value)
{
Environment.SetEnvironmentVariable(variableName, value);
}
}
Затем в наборе тестов впрыснуть фиктивный класс, который имитирует создание/обновление. Это проверит логику вашего кода.
издевались класс будет выглядеть примерно так:
class MockEnvironment
{
private Dictionary<string, string> _mockEnvironment;
public string GetVariable(string variableName)
{
return _mockEnvironment[variableName];
}
public void SetVariable(string variableName, string value)
{
// Check for entry not existing and add to dictionary
_mockEnviroment[variableName] = value;
}
}
Вам необходимо проверить класс-обертку, чтобы убедиться, что он на самом деле создать переменные окружения/системные обновления, но вам нужно только сделать это когда-то ,
- 1. Assign Mock Variable Value in Unit Test
- 2. linux environment variable diff
- 3. clusterExport, environment and variable scoping
- 4. Mock objects in C++
- 5. U-SQL in in environment environment
- 6. Open CV Install Environment Variable
- 7. Moq. Mock system class
- 8. echo variable in c program
- 9. Jenkins Slave Environment Variable Refresh
- 10. Пакетный файл: «Environment Variable Not Defined»
- 11. Threadpool/Queuing system in C++
- 12. Specifing environment in chef
- 13. Qt Creator Modify PATH Environment Variable
- 14. Pass Environment Variable как аргумент командной строки
- 15. angular2 setup mock environment using JSON file
- 16. Loop complete ** variable in C
- 17. System Variable путь отличается в командной строке
- 18. Docker in Development Environment
- 19. Java System Environment Переменная Текущий пользователь
- 20. PATH Environment Variable не имеет эффекта? (VS2010)
- 21. Append to environment variable для Scala Process
- 22. Python If Variable in Variable
- 23. Batch Variable in another Variable
- 24. System() in perl
- 25. Log4j in Unit Testing Environment
- 26. Word wrap in verbatim environment
- 27. Latex - \ multicolumn in align * environment
- 28. pylint failing in conda environment
- 29. Loop in system call C program
- 30. system() output in ncurses
Не могли бы вы привести пример? – VJL