Как смоделировать вызов Process.GetProcessesByName () в методе, который я хочу протестировать? - PullRequest
0 голосов
/ 06 апреля 2020

Я пишу модульные тесты, используя Xunit и moq. Внутри одной функции он вызывает Process.GetProcessesByName(). Мне нужно это, чтобы вернуть процесс с определенным pid, который существовал бы, когда моя программа фактически выполнялась. Однако, поскольку в тесте этот процесс не существует, как я могу смоделировать этот вызов, чтобы вернуть фальшивый процесс, который я хочу, чтобы я мог продолжить тестировать остальную часть метода?

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

Вам нужно будет обернуть вызов в Process.GetProcessesByName() в классе для инъекций, чтобы высмеять его. Moq не может заменить поведение методов stati c.

Вот хороший ответ на этот топи c здесь: Как смоделировать методы stati c в c# с использованием инфраструктуры MOQ?

0 голосов
/ 06 апреля 2020

То, что вы можете попробовать, это системное тестирование / интеграционное тестирование. Попытка получить реальное значение во время модульного тестирования - это не то, что предназначено для модульного тестирования. Целью модульного тестирования является проверка функциональности фрагмента кода, а не данных. Если вы заинтересованы в тестировании реальных данных, попробуйте другие методы тестирования, такие как автоматическое тестирование.

...