2017-01-03 111 views
0

我試圖讓nsubstitute嘲笑的IStringLocalizer一個實例這樣嘲諷IStringLocalizer與nsubstitute

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

我怎樣才能做到這一點?

+3

什麼不工作?任何錯誤消息?什麼是IStringLocalizer? – andreasnico

回答

1

試試這個:

var mock = Substitute.For<IStringLocalizer<SomeClass>>(); 

mock["Foo"].Returns(new LocalizedString("Foo", "XXXXXXXA")); 
Console.WriteLine(mock["Foo"]); // -> Write "XXXXXXXA" 

IStringLocalizer文檔,你可以看到這種類型的該索引是回報LocalizedString不能是顯式/隱式轉換爲System.String所以你需要明確指定新LocalizedStringReturns方法。