【发布时间】:2017-07-11 05:07:49
【问题描述】:
我有点摸不着头脑,想弄清楚如何测试以下内容: 这里是 GetProjects 方法。
[Authorize]
[HttpGet]
[Route("api/UserProject/GetUserProjects")]
public HttpResponseMessage GetProjects()
{
string userId = User.Identity.GetUserId();
if (!ModelState.IsValid)
{
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
try
{
List<ProjectDto> userProjectsDtos = projectBll.GetProjects(userId);
return Request.CreateResponse(HttpStatusCode.OK, userProjectsDtos);
}
catch (Exception)
{
return new HttpResponseMessage(HttpStatusCode.InternalServerError);
}
}
我正在尝试为该方法运行 NUnit 测试。
[TestClass]
public class TestUserProjects
{
[TestMethod]
public void GetUserProjectsTest()
{
// Arragnge
var controller = new UserProjectController();
controller.Request = new HttpRequestMessage();
controller.Configuration = new HttpConfiguration();
foreach (var testUserId in GetTestUserIds())
{
// Act
var response = controller.GetProjects();
// Assert
List<ProjectDto> projects;
Assert.IsTrue(response.TryGetContentValue<List<ProjectDto>>(out projects));
//Assert.AreEqual(5, projects.Count); // Check projects count
Assert.AreEqual(HttpStatusCode.OK,response.StatusCode);
Assert.AreEqual(HttpStatusCode.OK, response.StatusCode,"GetUserProjects : id is {0} and count is {1}",testUserId,projects.Count);
System.Diagnostics.Debug.WriteLine("GetUserProjects : for id {0} ProjectCount = {1}", testUserId, projects.Count);
}
}
}
我正在尝试传递 userId ,但不知道在哪里写。
【问题讨论】:
标签: c# visual-studio unit-testing asp.net-web-api nunit