【发布时间】:2016-02-17 20:58:02
【问题描述】:
我有一个单元测试,它使用 OWIN TestServer 类来托管我的 Web Api ApiController 类进行测试。
当 REST API 没有将 HTTPS (SSL) 要求嵌入到 Controller 本身时,我首先编写了单元测试。
我的单元测试看起来像这样:
[TestMethod]
[TestCategory("Unit")]
public async Task Test_MyMethod()
{
using (var server = TestServer.Create<TestStartup>())
{
//Arrange
var jsonBody = new JsonMyRequestObject();
var request = server.CreateRequest("/api/v1/MyMethod")
.And(x => x.Method = HttpMethod.Post)
.And(x => x.Content = new StringContent(JsonConvert.SerializeObject(jsonBody), Encoding.UTF8, "application/json"));
//Act
var response = await request.PostAsync();
var jsonResponse =
JsonConvert.DeserializeObject<JsonMyResponseObject>(await response.Content.ReadAsStringAsync());
//Assert
Assert.IsTrue(response.IsSuccessStatusCode);
}
}
现在我已应用该属性来强制执行 HTTPS,但我的单元测试失败了。
如何修复我的测试,以便在所有条件相同的情况下再次通过测试?
【问题讨论】:
标签: c# unit-testing ssl asp.net-web-api2 owin