Вы можете изменить текущую культуру потоков в коде, если культура существует на компьютере.Если он не существует, вам нужно установить / создать его.
Что касается сравнения строк, используемых в приложении (которые могут измениться), я бы посоветовал не делать это целью теста.
Вместо этого, возможно, в каждом ресурсе, который является статическим, есть строка проверки работоспособности, и проверьте это.Если это меняется с культурой, то вы загрузили правильный ресурс и можете с уверенностью предположить, что остальное содержимое также корректно.
NUnit поддерживает изменение культуры тестовых наборов:
http://www.nunit.org/index.php?p=culture&r=2.4.8
Обновление: Я вижу, поэтому проблема в том, что тест не может заглянуть в регистратор?Я хотел бы предложить, чтобы вы могли либо издеваться над регистратором, который знает, что он тестируется и содержит свои собственные утверждения, либо отказаться от тестирования самого регистратора и проверки того, что спутниковые сборки загружаются в настоящее время при изменении культуры.Если регистратор просто использует файл ресурсов, тогда среда выполнения .NET будет обрабатывать загрузку правильного файла или файла по умолчанию для базового файла культуры.
Затем можно провести отдельные тесты, чтобы показать, что регистратор регистрирует, не беспокоясьо том, что он записывает, как это описано в другом тесте.
Обновление 2: Мне кажется, я вижу, что вы пытаетесь сделать.Возможно ли вообще, чтобы регистратор принял формат строки и params object[] args
, чтобы получить доступ к строке до того, как она будет вставлена с определенными значениями?
В качестве альтернативы, возможно ли сделать строкустатический или это от природы меняет каждый тестовый прогон?Для теста допустимо иметь жестко запрограммированные значения, если сам тест в первую очередь отвечает за заполнение значений.Кроме того, что касается культуры, я бы обратил эти изменения отдельно к изменениям, внесенным различными путями кода, выбирая разные сообщения.
Обновление 3: извините, я не мог видеть дрова длядеревья.Сам тест может построить ожидаемую строку из файла resx, который использует код, и просто вставить жестко закодированные значения.Это зависит от результатов теста, не отличающихся от каждого запуска.
Если изменяется resx, то, пока число значений, включенных в форматированную строку, не изменяется, вам не нужно исправлять либокод или тест.