Bất cứ ai có thể vui lòng cho biết làm thế nào để giả lập một bài đăng hình thức MVC bằng cách sử dụng Moq?Làm thế nào để giả lập mẫu MVC POST với Moq
Tất cả những gì tôi muốn là kiểm tra đơn vị phương pháp của mình dựa trên một số bài đăng biểu mẫu khác nhau.
Tôi đã cố gắng sử dụng Google cho điều này và không có hướng dẫn từ trên xuống dưới.
Cảm ơn
EDIT: thêm mã
[TestMethod]
public void SubscriptionControllerTest()
{
var subscriptionViewModel = new SubscriptionViewModel();
//HTTP REQUEST SET UP
var httpRequest = new Mock<HttpRequestBase>();
httpRequest.Setup(r => r.Path).Returns("/Subscription/SendEmail");
httpRequest.Setup(r => r.Form).Returns(delegate()
{
var nv = new NameValueCollection();
nv.Add("FirstName", "John");
nv.Add("LastName", "Smith");
nv.Add("Email", "[email protected]");
nv.Add("Comments", "Comments are here...");
nv.Add("ReceiveUpdates", "true");
return nv;
});
//HTTP CONTEXT SET UP
var httpContext = new Mock<HttpContextBase>();
httpContext.Setup(c => c.Request).Returns(httpRequest.Object);
var subscriptionController = new Mock<SubscriptionController>();
subscriptionController.Setup(s => s.HttpContext).Returns(httpContext.Object);
var result = subscriptionController.Object.SendEmail(subscriptionViewModel);
Assert.AreEqual(((ViewResult)result).ViewName, "Index");
}
}
Tôi có một bộ điều khiển gọi là SubscriptionController. Ở đó, tôi có một Phương thức hành động được gọi là SendEmail. Tôi muốn có thể chạy Đăng ký/GửiEmail bằng phương pháp Thử nghiệm ở trên. Chế độ xem của tôi là biểu mẫu có các trường sau: Tên, Họ, Email, Nhận xét và hộp kiểm. Tôi cần phải giả lập biểu mẫu này và cũng giả lập trình điều khiển, yêu cầu và bối cảnh http của tôi. Tôi là một chút bối rối những gì để chế giễu và những gì để sử dụng như thật. Cảm ơn bạn đã làm rõ.
Bạn có thể đăng lớp học (hoặc một phần liên quan của nó) mà bạn đang cố gắng giả lập không? –