使用 IStringLocalizer<T> 进行单元测试 class
Unit Testing class with IStringLocalizer<T>
我有一个带有构造函数的 class,它得到了一个 IStringLocalizer<T>
注入。
public MailBuilder(IStringLocalizer<MailTexte> stringLocalizer)
{ ... }
我正在尝试设置伪造的字符串定位器:
A.CallTo(() => this.stringLocalizer["ConfirmationMailTitel"]).Returns(subject);
但我收到消息
IReturnValueArgumentValidationConfiguration LocalizedString does not contain a definition for 'Returns'
IStringLocalizer 的界面如下所示:
LocalizedString this[string name] { get; }
如何在 FakeItEasy 中正确设置此索引器?
提前致谢
你得到异常是因为你很可能没有返回正确的类型(即 subject
)
如界面所示,索引器returns一个LocalizedString
。
这意味着需要相应地配置模拟。
//...
var stringLocalizer = A.Fake<IStringLocalizer<MailTexte>>();
key = "ConfirmationMailTitel";
var localizedString = new LocalizedString(key, "desired localised value here");
A.CallTo(() => stringLocalizer["ConfirmationMailTitel"]).Returns(localizedString);
//...
我有一个带有构造函数的 class,它得到了一个 IStringLocalizer<T>
注入。
public MailBuilder(IStringLocalizer<MailTexte> stringLocalizer)
{ ... }
我正在尝试设置伪造的字符串定位器:
A.CallTo(() => this.stringLocalizer["ConfirmationMailTitel"]).Returns(subject);
但我收到消息
IReturnValueArgumentValidationConfiguration LocalizedString does not contain a definition for 'Returns'
IStringLocalizer 的界面如下所示:
LocalizedString this[string name] { get; }
如何在 FakeItEasy 中正确设置此索引器?
提前致谢
你得到异常是因为你很可能没有返回正确的类型(即 subject
)
如界面所示,索引器returns一个LocalizedString
。
这意味着需要相应地配置模拟。
//...
var stringLocalizer = A.Fake<IStringLocalizer<MailTexte>>();
key = "ConfirmationMailTitel";
var localizedString = new LocalizedString(key, "desired localised value here");
A.CallTo(() => stringLocalizer["ConfirmationMailTitel"]).Returns(localizedString);
//...