Я использую для своих тестов NUnit и попытаюсь проверить, вызван ли метод с правильными значениями. Пока не все будет хорошо. Я должен локализовать тексты и поэтому использовать для этого строки ресурсов. Каждый модульный тест теперь терпит неудачу, что тесты для метода, который нужно получить, где параметр string содержит новую строку.NSubstitute: Received() не проверяет строковый параметр, когда строка поступает из ресурса
Вот упрощенный пример:
// Old Version, where the unit test succeed
public void CallWithText(ICallable callable)
{
callable.ShowText("Some text with a new\nline.");
}
// New Version, where the unit test fails
// Text of `Properties.Resources.TextWithNewLine` in the
// Resources.resx is "Some text with a new
// line."
public void CallWithText(ICallable callable)
{
callable.ShowText(Properties.Resources.TextWithNewLine);
}
[Test]
public void CallWithText_WhenCalled_CallsCallable()
{
var caller = new Caller();
var callable = Substitute.For<ICallable>();
caller.CallWithText(callable);
callable.Received(1).ShowText("Some text with a new\nline.");
}
Это кажется мне, что есть проблема с новой строки. Есть ли у кого-нибудь решение, потому что это беспорядок, чтобы адаптировать все модульные тесты.
Пожалуйста, отправьте сообщение [mcve]. Также опубликуйте результат теста, который терпит неудачу. Вы уверены, что файл ресурсов содержит только одну новую строку, а не строку? –
Вы были правы (например, @Alexandr Niktin), файл ресурсов, содержащий \ r \ n, и это причина, по которой тест не прошел. – scher