在我的测试中,我有类型的结果,HttpRequestMessage
我需要断言它的属性Content
设置为正确的对象。
问题是它HttpRequestMessage.Content
的(基本)类型与我想要比较的对象不同,我不能像这样使用 ShouldBeEquivalentTo 和 Include :
HttpRequestMessage result = ...
result.Content.ShouldBeEquivalentTo (new ObjectContent (obj.GetType (), obj, new JsonMediaTypeFormatter ()),
options => options.Including (x => x.Value));
这不会编译,因为选项使用 Content 属性类型(即HttpContent
)而不是ObjectContent
.
我发现的唯一方法是有两个这样的断言:
result.Should ().BeOfType<ObjectContent> ();
((ObjectContent) result.Content).ShouldBeEquivalentTo (new ObjectContent (obj.GetType (), obj, new JsonMediaTypeFormatter ()),
options => options.Including (x => x.Value));
有更好的方法吗?也许某种BeOfType
返回铸造对象流利断言而不是基本断言?