2008-11-24 20 views
15

Tôi mới bắt chước, tôi có một dự án web .net mới trong giao diện người dùng-> BLL-> DAL-> DB, tôi sử dụng NUnit để thực hiện một số thử nghiệm hiện tại. Tôi định sử dụng nó để kiểm tra tầng giữa nên tôi không phải viết thư cho DB.Mocking for Dummies?

Bây giờ, tôi chưa bao giờ thực hiện bất kỳ chế nhạo nào, không hoàn toàn biết bắt đầu từ đâu, vì vậy tôi đang tìm một khung mocking có một số mẫu kết thúc! Ai đó có thể chỉ cho tôi một vật liệu nhạo báng nào đó bắt đầu ngay từ đầu và với mẫu đầy đủ không?

Cảm ơn bạn,

Ray.

Trả lời

3

Rhino Mocks là một khung mà bạn có thể sử dụng mà tôi đã sử dụng một chút.

Cheat sheet có một vài liên kết nếu bạn muốn thử một số liên kết khác mặc dù bài viết có một chút ngày. ?

+0

Tôi là con tê giác tê giác thứ hai tôi đã nhặt nó trong vòng một giờ. –

3

TypeMock ...

tốt, chế giễu tốt nhất cho tôi - giao diện, một số refactoring mã của bạn một chút và tìm ra những gì bạn muốn kiểm tra để bạn không cần bất kỳ chế nhạo. Hoặc - bất kỳ việc tiêm phụ thuộc nào để giả lập một số nội dung (nhưng trước khi bạn cần phải cấu trúc lại một chút tất nhiên)

9

Bạn nên xem một số video về chế nhạo trên Dimecasts.net, đó là một cách nhanh chóng để có được cảm nhận về những gì mocking là về và bắt đầu trên mã của riêng bạn.

Introduction to Moq

Introduction to RhinoMocks

+0

Đó là những thực sự rất tốt đẹp, học được rất nhiều từ những clip ngắn :). – Morph

4

Hiện nay có một số mocking frameworks khác nhau. Tôi khuyên bạn nên xem RhinoMock hoặc TypeMock. Cả hai đều miễn phí cho các dự án nguồn mở/cá nhân. TypeMock cũng có giấy phép công ty.

RhinoMock buộc bạn phải cấu trúc lại mã của bạn để kiểm tra (nếu cần, nếu bạn đã có mã thử nghiệm bạn đang làm tốt). Điều này đòi hỏi nhiều công việc hơn, nhưng nó sẽ để lại cho bạn với mã được kết hợp lỏng lẻo đó là một lợi ích trong chính nó. Do điều này có một số cấu trúc bạn chỉ đơn giản là không thể giả lập trực tiếp với Rhino. Tuy nhiên, bạn luôn có thể giới thiệu các lớp bổ sung của indirection và giải quyết nó theo cách đó. Tuy nhiên, điều cốt yếu là: bạn cần phải làm thêm một số công việc, nhưng cuối cùng việc tái cấu trúc sẽ mang lại lợi ích cho mã của bạn.

LoạiMock mặt khác hoạt động bằng cách sửa đổi mã trực tiếp (nó sử dụng API profiler để chèn mã). Điều này cho phép bạn sử dụng chế nhạo mã không phù hợp với loại thử nghiệm này. TypeMock sẽ khá nhiều cho phép bạn giả lập bất cứ điều gì (ngoại trừ mscorlib), do đó, nó rất dễ dàng để bắt đầu và nó hoạt động tốt với mã kế thừa. Tuy nhiên, bởi vì bạn không buộc phải cấu trúc lại mã của bạn, bạn không nhận được lợi ích bổ sung của các kiểu kết hợp lỏng lẻo. Ngoài ra TypeMock đôi khi sẽ dẫn đến các lỗi rất lạ do thực tế là mã đang chạy được sửa đổi.

1

Bạn có thể quan tâm đến sách của chúng tôi đang tiến hành http://www.mockobjects.com/book. Đó là Java, nhưng các nguyên tắc thì giống nhau.