2010-03-16 34 views
11

Tôi đã tìm kiếm trên diễn đàn và không tìm thấy câu hỏi tương tự. Tôi đang tìm cách đưa ra quyết định cuối cùng về khuôn khổ mocking của sự lựa chọn của chúng tôi về phía trước như là một thực hành tốt nhất - Tôi đã quyết định về Moq ... cho đến gần đây tôi đã phát hiện ra MS cuối cùng đã tạo ra một khuôn khổ mocking được gọi là Moles mà dường như làm việc tương tự để TypeMock thông qua các API profiler sexyness vv ..Bất cứ ai sử dụng Moles/Pex trong sản xuất?

Có một triệu 'NMock vs Moq vs TypeMock vs Rhino ....' chủ đề trên đây. Nhưng tôi chưa bao giờ thấy Moles tham gia.Trong thực tế, tôi thậm chí không biết sự tồn tại của nó cho đến một thời gian ngắn trước đây. Bất cứ ai sử dụng nó? Trong sản xuất? Bất cứ ai đổ khung mocking cũ của họ cho nó, và nếu có, cái nào? Làm cách nào để so sánh với các khung công tác mô phỏng mà bạn đã sử dụng?

cảm ơn .. ps, chúng tôi đang sử dụng VS2008 và sẽ sớm chuyển sang năm 2010.

+0

ý kiến ​​của tôi là Moles không chỉ là một khung mocking. Đó là nhiều hơn của một kẻ đánh chặn - những gì tôi không thích về nốt ruồi: nó tạo ra nhiều mã hơn. Đó là nhiều băng keo - không dẫn bạn làm sạch thiết kế của bạn. ví dụ. Just Mole DateTime.Now rồi! không khiến bạn đặt trách nhiệm phía sau vai trò Đồng hồ. Mặt khác, Moles có thể là một lựa chọn dễ dàng nếu bạn đang xử lý một đống mã kế thừa hiện có. – Gishu

+2

Các nốt ruồi đã được thay thế bằng Hàng giả http://msdn.microsoft.com/en-us/library/hh549175(v=vs.110).aspx trong studio trực quan 2012 –

Trả lời

7

Tôi đang ở trong cùng tình huống bạn đang ở, vì vậy tôi muốn nhận xét về trải nghiệm của tôi.

Cả hai Typemock và Moles đều có mục tiêu cô lập. Đặc biệt đối với những lớp học kín đáo pesky, phương pháp phi ảo.

Tôi tin rằng một khung cách ly, như được đề cập ở trên, là cần thiết đặc biệt nếu bạn đang trong giai đoạn phát triển sau và/hoặc không có/kiểm soát ít cơ sở mã.

Đây là những lợi thế trong Typemock, tôi chưa phát hiện với Moles

  • Hỗ trợ cho các công cụ bảo hiểm mã (NCover và Partcover)
  • Hỗ trợ để đánh chặn/xác minh trên lối đi riêng (phương pháp/tài sản) [ vâng đây là tranh cãi]
  • More đánh bóng sản phẩm, và chạy nhanh với API trực quan (vẫn rối tung với nốt ruồi để thậm chí làm việc ngay)

tôi hy vọng Moles matur es vào sản phẩm được phát hành, nhưng sự bắt đầu của việc mày mò của tôi với nó dường như không khác gì so với các dự án nghiên cứu MS khác; thường không được đánh bóng, nhưng đó dường như là bản chất của những loại dự án đó.

+0

cảm ơn cho thông tin – dferraro

7

Tôi nghĩ rằng nốt ruồi đang dùng chế nhạo đến cấp độ tiếp theo, nó mạnh hơn rất nhiều.

Bạn có ý nghĩa gì bởi 'trong sản xuất' ?. Các nốt ruồi chỉ hữu ích trong thử nghiệm đơn vị. Nó có tác động hiệu suất nghiêm trọng và nó cũng cho phép mã không an toàn trong sản xuất (bao giờ nghĩ về việc thay thế một hàm IsAuthorized để trả về true?).

Các vai trò có thể sử dụng được trong cả năm 2008 và 2009.

Hy vọng điều này sẽ trả lời câu hỏi của bạn.

+0

cảm ơn. Tôi có nghĩa là trong writting mã sản xuất bằng cách sử dụng TDD sử dụng nốt ruồi khi tôi đã viết 'sản xuất' – dferraro

7

Các nốt ruồi được một số nhóm sản phẩm sử dụng nội bộ tại Microsoft.

1

Các nốt ruồi và Pex là sự thay đổi mô hình !! quá nhiều để mong đợi từ một frameowrk miễn phí. Cho đến nay tôi đã không đi qua bất kỳ lý do không sử dụng nó, trừ khi bạn có cơ sở mã công nghệ chéo nhưng miễn là nó. Net tôi nốt ruồi và Pex chắc chắn là câu trả lời !!

1

Vâng, có thể có một vài vấn đề về luồng có vẻ bị cắt ở giữa, rất khó để lặp lại. Về cơ bản nó bị treo VS 2010 khi bạn thậm chí cố gắng đặt một điểm ngắt trong quy trình đính kèm. Nó đã xảy ra vài lần cho tôi không chỉ trên một máy mà sau đó biến mất vì lý do không rõ.

Khi đường vòng xảy ra gỡ lỗi là một điệu nhảy giữa mã và đường vòng có thể khó đối phó với ban đầu và nếu có ngoại lệ trong thời gian đó thì rất khó để phá vỡ ngoại lệ.

Các thử nghiệm được tạo tự động và PUT - quan điểm của nó để nắm bắt thông điệp mà chúng đang cố gắng truyền đạt. , các gen PUT của auuto có thể không phải là cách tốt nhất để tận dụng các phép thử được tham số hóa.

Nhìn chung, có một đường cong học tập cộng với khuôn khổ cũng sẽ mất một thời gian để trưởng thành. Mặt tích cực, khái niệm là chi phí tốt và duy trì (nếu được triển khai chính xác) và thời gian phản hồi từ nhóm hỗ trợ PEX thực sự tích cực, đôi khi bạn nhận được câu trả lời hữu ích trong vòng 2 giờ trên diễn đàn PEX.

Trân trọng Yogesh Pawar

0

Nếu bằng cách "sản xuất" có nghĩa là bạn sử dụng nó trên một sản phẩm đang được sử dụng trong sản xuất sau đó hoàn toàn!

Chúng tôi đang sử dụng Moles để cô lập chức năng trong các bài kiểm tra đơn vị của chúng tôi trên một dự án hồ sơ rất cao cho các công ty như Google và McDonalds. Tất nhiên, kiểm thử đơn vị không được chạy trên máy chủ sản xuất nên các nốt ruồi không bao giờ được triển khai để sản xuất.

Các vấn đề liên quan