Класс модульного тестирования с IStringLocalizer <T> - PullRequest
1 голос
/ 09 апреля 2020

У меня есть класс с конструктором, который получает IStringLocalizer<T>.

public MailBuilder(IStringLocalizer<MailTexte> stringLocalizer)
{ ... }

Я пытаюсь настроить фальшивку локализатора строки:

A.CallTo(() => this.stringLocalizer["ConfirmationMailTitel"]).Returns(subject);

Но я получаю сообщение

IReturnValueArgumentValidationConfiguration LocalizedString не содержит определения для 'Returns'

Взаимодействие IStringLocalizer выглядит следующим образом:

LocalizedString this[string name] { get; }

Как правильно настроить этот индексатор в FakeItEasy?

Заранее спасибо

1 Ответ

2 голосов
/ 09 апреля 2020

Вы получаете исключение, потому что, скорее всего, вы не возвращаете правильный тип (ie subject)

Как показано в интерфейсе, индексатор возвращает LocalizedString.

Что означает, что макет должен быть настроен соответствующим образом.

//...

var stringLocalizer = A.Fake<IStringLocalizer<MailTexte>>();
key = "ConfirmationMailTitel";
var localizedString = new LocalizedString(key, "desired localised value here");

A.CallTo(() => stringLocalizer["ConfirmationMailTitel"]).Returns(localizedString);

//...
...