5
나는 다음을 가지고있다 Action Method
나는 moq 시험에 노력하고있다. AcceptVerbs
에 주목하십시오. 내가 그걸 시험하고 있는지 확인해야 해.ASP.NET에서 Moq를 사용하여 HTTP-Post를 테스트하는 방법은 무엇입니까?
여기가 방법입니다.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Include = "Subject, Content")]Post post,
HttpPostedFileBase imageFileName)
{
...
}
여기 ... 내가 가지고있는 MOQ 코드의
[TestMethod]
public void Create_Action_snip_sniop_When_Http_Post_Is_Succesful()
{
// Arrange.
var mock = new Mock<ControllerContext>();
mock.SetupGet(m => m.HttpContext.Request.HttpMethod).Returns("POST");
// Snip some other arrangements.
var controller = PostController;
controller.ControllerContext = mock.Object;
// Act.
var viewResult = controller.Create(post, image.Object) as ViewResult;
// Assert.
Assert.IsNotNull(viewResult);
// TODO: Test that the request was an Http-Post.
내가 게시물이었다 요청을 확인하려면 어떻게해야합니까?
그래서 당신이 말하고있는 것은 테스트 반대로 당신이 있습니다 .. .Post 동사와 특정 컨트롤러 방법을 장식했는지 확인하기 위해 테스트하는 것입니다 그 이 메소드는 요청에 HTTP 요청이 발생했습니다 (이 범위 외부의 배관 방법 -> 프레임 워크의 내용) ..? –
수정. 필터를 호출하는 기능은 메서드의 범위 밖에 있습니다 (메서드가 호출되기 전에 먼저 실행됩니다). 따라서 올바른 특성이 적용되면 메서드에서 비 POST를 결코 볼 수 없습니다. – tvanfosson