Tôi đã luôn luôn giả mạo/mocking/stubbing HttpContext bằng cách nào đó trong ASP.NET (dễ dàng hơn nhiều trong ASP.NET MVC/MonoRail).Tại sao giả sử HttpContext nếu nó có thể được xây dựng?
Nhưng tôi có thể thấy rằng HttpContext chính nó có thể được xây dựng dễ dàng, theo nghĩa đen với vài dòng mã.
var tw = new StringWriter();
var workerReq = new SimpleWorkerRequest("/webapp", @"c:\here\there\wwwroot", "page.aspx", tw);
var context = new HtpContext(workerReq);
Nếu chúng tôi sẽ quấn mã này vào một cái gì đó như thế này nó sẽ làm việc tốt, và có lẽ chúng ta thậm chí có thể làm cho ASPX sử dụng rằng:
using(Simulate.HttpContext()) {
HttpContext.Current.BlaBla;
}
Vì vậy, câu hỏi là:
- Lý do tại sao KHÔNG nên làm.
- Lý do tại sao cần thực hiện.
- Tại sao nó không được sử dụng rộng rãi (trên thực tế tôi không nhớ bất kỳ bài viết nào về nó).
Tôi nhớ một bài đăng mà Phill Haack đã xây dựng HttpContext bằng cách sử dụng Hacks phản chiếu.
Nhưng có vẻ như không cần thiết.
Chúc mừng,
Dmitriy.
chế nhạo cũng là điều tuyệt vời để truy cập các điều kiện lỗi cụ thể. – dbn