Chr*_*ris 4 unit-testing stub shim microsoft-fakes
我需要为单元测试提供静态泛型方法.但是,我似乎无法让Fakes创建填充对象.有谁知道如何做到这一点?
特别是,我想要填充Newtonsoft的JsonConvert.DeserializeObject <>()
对于您希望注册代理的每种返回类型,如下所示:
在单元测试中使用此代码:
using (var context = ShimsContext.Create())
{
ShimJsonConvert.DeserializeObjectOf1String<SomeJSonObject>(s => new SomeJSonObject() { Name = "Foo" });
SomeJSonObject o = ConsoleApplication3.Program.Deserialize();
Assert.IsNotNull(o);
Assert.AreSame(o.Name, "Foo");
}
Run Code Online (Sandbox Code Playgroud)
而这个代码正在测试中:
return JsonConvert.DeserializeObject<SomeJSonObject>("");
Run Code Online (Sandbox Code Playgroud)
它对我来说是预期的.
如果需要还注册其他重载.因此,如果您正在使用其他一些重载,则还必须在Shim上注册相应的委托:

喜欢:
ShimJsonConvert.DeserializeObjectOf1String<SomeJSonObject>(s => new SomeJSonObject() { Name = "Foo" });
ShimJsonConvert.DeserializeObjectOf1StringJsonConverterArray((s, convertors) => new SomeJSonObject() {Name = "Bar"});
ShimJsonConvert.DeserializeObjectOf1StringJsonSerializerSettings((s, settings) => new SomeJSonObject() { Name = "Bar" });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6597 次 |
| 最近记录: |