单元测试 – 使用Microsoft Fakes和静态通用方法填充
发布时间:2020-12-14 03:53:42 所属栏目:Windows 来源:网络整理
导读:我需要为单元测试提供静态泛型方法.但是,我似乎无法让Fakes创建填充对象.有谁知道如何做到这一点? 特别是,我想要填充Newtonsoft的JsonConvert.DeserializeObject() 解决方法 对于您希望注册代理的每种返回类型,如下所示: 在单元测试中使用此代码: using (
我需要为单元测试提供静态泛型方法.但是,我似乎无法让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"); } 而这个代码正在测试中: return JsonConvert.DeserializeObject<SomeJSonObject>(""); 它对我来说是预期的. 如果需要还注册其他重载.因此,如果您正在使用其他一些重载,则还必须在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" }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读