Trong ứng dụng Asp.net MVC của tôi, tôi có hai phương pháp trên một bộ điều khiển, một cho khi người dùng đầu tiên đến trên xem và sau đó một khi họ gửi biểu mẫu trên cho biết xem .mvccontrib kiểm tra helper và xác minh http bài tuyến đường và các thông số
public ActionResult Foo() {}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Foo(string id, Account accountToFoo) {}
Trong hành động thứ hai, có một chất kết dính mô hình tùy chỉnh lắp ráp đối tượng tài khoản mà tôi đang hành động, mặc dù điều đó thực sự không quan trọng. Tất cả điều này hoạt động tốt trong thử nghiệm cục bộ trên một máy chủ.
Chúng tôi cố gắng khá tốt khi viết các bài kiểm tra đơn vị để kiểm tra tất cả các chế độ xem khác nhau của chúng tôi được định tuyến đúng cách, bao gồm cả những bài đăng HTTP POST. Để làm như vậy, chúng tôi đã sử dụng trình trợ giúp kiểm tra của mvccontrib.
Testing bị đã được siêu đơn giản
"~/account/foo/myusername".
Route().
ShouldMapTo<AccountController>(c => c.Foo("myusername"));
Câu hỏi của tôi là ở các tuyến đường POST thử nghiệm, làm thế nào để viết lambda mà tôi sẽ sử dụng để xác minh các bài đang nhận được giá trị chính xác, tương tự như kiểm tra GET trên ?
Đối với một POST, nó trông giống như sau:
"~/account/foo".
WithMethod(HttpVerbs.Post).
ShouldMapTo<AccountController>(a => something_something);
Đó là phần something_something của lambda của tôi mà tôi đang gặp rắc rối với. Sử dụng các giá trị tùy ý không hoạt động ("a => a.Foo (0, Tài khoản mới()"). Làm cách nào để chỉ định các giá trị mong đợi như một phần của thử nghiệm?
EDIT Tôi đã hy vọng có một cái gì đó giống như cách Moq có lambdas cho báo cáo như foo.Setup (s => s.Foo (It.IsAny(), It.Is (i => i> 32)) và như vậy. Ngay cả tôi phải rõ ràng .. cung cấp các giá trị, đó là hoàn toàn khả thi - tôi chỉ dường như không thể grok cấu trúc mong muốn để vượt qua những giá trị rõ ràng
Bạn đã bao giờ giải quyết vấn đề này chưa? – Paul
Không, không bao giờ làm - và đã bị phân tâm với các phần khác của ứng dụng mới của tôi mà đơn vị kiểm tra các hành động POST cụ thể này đã giảm xuống bên lề đường. Vẫn muốn biết cách tốt nhất để tiếp cận điều này. – bakasan