値が適切に読み取られ、OutgoingReponse.ContentType が目的の形式と一致することをテストするために、Accept 値を割り当てるヘッダーを使用して、WebOperationContext、特に IncomingRequest をモックする必要があります。私は WCFMock を使用しており、一般的なテストではすべて問題ありませんでしたが、着信応答をモックするために何をする必要があるのか 理解できません。
Accept プロパティは読み取り専用であるため、直接割り当てることはできません。System.SericeModel.Web.IncomingWebRequestContext から継承しているため、セッターを WCFMock.IncomingWebRequestContextWrapper に追加しようとしました。
だから、このようなものが望まれるでしょう
[Test]
public void SerializeObjectToXMLTest()
{
var fake = new FakeRest();
var mockContext = new Mock<IWebOperationContext> { DefaultValue = DefaultValue.Mock };
using (new MockedWebOperationContext(mockContext.Object))
{
// WHAT I WOULD LOVE:
MockedWebOperationContext.Current.IncomingRequest.Accept = "application/json";
fake.SetResponseContentType();
}
// Assert
mockContext.VerifySet(c => c.OutgoingResponse.ContentType, "application/json");
}
WebRequest を完全にモックする必要があるのではないかと心配しており、可能であればそれを避けたいと考えています。