【问题标题】:Unit Testing class with IStringLocalizer<T>带有 IStringLocalizer<T> 的单元测试类
【发布时间】:2020-04-09 16:30:23
【问题描述】:

我有一个带有构造函数的类,它注入了IStringLocalizer&lt;T&gt;

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

我正在尝试设置假的字符串本地化器:

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

但我收到了消息

IReturnValueArgumentValidationConfiguration LocalizedString 不包含“返回”的定义

IStringLocalizer 的交互如下所示:

LocalizedString this[string name] { get; }

如何在 FakeItEasy 中正确设置此索引器?

提前致谢

【问题讨论】:

    标签: c# .net unit-testing fakeiteasy


    【解决方案1】:

    您收到异常是因为您很可能没有返回正确的类型(即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);
    
    //...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-22
      • 2023-01-18
      • 2020-03-12
      • 1970-01-01
      • 2018-09-25
      • 2018-06-03
      • 2019-05-20
      • 1970-01-01
      相关资源
      最近更新 更多