使用nsubstitute模拟IStringLocalizer

时间:2017-01-03 10:11:19

标签: .net unit-testing mocking nsubstitute

我试图让nsubstitute像这样模拟一个IStringLocalizer的实例

var mock = Substitute.For<IStringLocalizer<SomeClass>>();
mock["Foo"].Returns("Bar");
Assert.That(mock["Foo"], Is.EqualTo("Bar"));

我该怎么做?

2 个答案:

答案 0 :(得分:2)

试试这个:

mMediaRecorder.stop();
mMediaRecorder.reset();
showPreview();
setUpMediaRecorder(); // this is key to not get an error from the MediaRecorder

IllegalArgumentException: Bad argument passed to camera service的文档中,您可以看到此类型的索引器返回var mock = Substitute.For<IStringLocalizer<SomeClass>>(); mock["Foo"].Returns(new LocalizedString("Foo", "XXXXXXXA")); Console.WriteLine(mock["Foo"]); // -> Write "XXXXXXXA" ,无法显式/隐式强制转换为IStringLocalizer,因此您需要明确指定新LocalizedString } {} {}}。{/ p>

答案 1 :(得分:2)

如果你想要一个只需将ressoure代码作为翻译结果返回的通用模拟,你可以使用:

mock[Arg.Any<string>()].Returns(p => new LocalizedString((string)p[0], (string)p[0]));