2011-01-18 40 views
8

Có khung mocking nào cho Windows Phone 7 hay tôi cần tạo thủ công hàng giả?Windows Phone 7 mocking framework?

Tôi không tìm thấy bất kỳ trên google, và mặc dù tôi tìm thấy Moq được liệt kê trên trang tài nguyên WP7, tôi không thể làm cho nó hoạt động.

Trả lời

14

Không có khung Mocking hỗ trợ WP7 và tôi nghi ngờ sẽ không bao giờ có bất kỳ cho đến khi WP7 hỗ trợ Reflection.Emit.

Trên khung .net có many options tồn tại để tạo ra một khung mocking (Profiler API, CodeDem, Refleciton.Emit, et al). Phần lớn các kỹ thuật này sẽ không hoạt động trên Silverlight vì nó thiếu rất nhiều BCL/CLR. Tất cả các khung công tác mô phỏng Silverlight hiện có đều sử dụng Reflection.Emit. WP7 không hỗ trợ Reflection.Emit và do đó không có khuôn khổ mocking Silverlight sẽ làm việc trên WP7.

Vì lý do đó, cá nhân tôi kiểm tra hội đồng WP7 trên thời gian chạy Silverlight. Đó là xa tối ưu (nó sucks), nhưng nó là tốt nhất có thể được thực hiện trong hoàn cảnh.

Một lý thuyết về mặt lý thuyết có thể xây dựng một khung Mocking sử dụng tính năng dệt MSIL sau khi xây dựng nên hoạt động trên WP7, nhưng nó vẫn chưa được thực hiện.

Nếu bạn muốn WP7 để hỗ trợ Reflection.Emit xem xét bỏ phiếu về vấn đề uservoice này: WP7 should support Reflection.Emit for Mocking frameworks

EDIT 2011/02/12: Refleciton.Emit được hỗ trợ trên Mango. Hoan hô! Reflection.Emit dựa trên khuôn khổ Mocking chỉ nên làm việc.

+0

Giới thiệu về ** EDIT 2/12/2011 ** - System.Reflection.Emit không gian tên tồn tại, nhưng các lớp bê tông chứa trong nó trên Silverlight WP7 bị giảm rất nhiều, theo như tôi thấy.Bạn có biết nếu những gì là có đủ để có được mocking đi? –

+1

Tôi vừa phát hành phiên bản đầu tiên của khung mocking cho Windows Phone 7: http://moqalate.codeplex.com/ http://www.dontcodetired.com/blog/post/Introducing-%28probably%29-The -World-Only-Mocking-Framework-cho-Windows-Phone-7-% 28WP7% 29.aspx –

4

Tôi không biết bất kỳ nội dung nào hiện có sẵn.

This article by David Gadd hiển thị ví dụ về thử nghiệm trên điện thoại sử dụng các đối tượng giả được tạo theo cách thủ công và có thể là tài nguyên hữu ích.

0

Bất kỳ khung làm việc nào hỗ trợ Silverlight 3 đều hoạt động với Windows Phone 7. Bạn có thể cần phải sử dụng phiên bản trước của khung để "tắt" xuống Silverlight 3.

3

Tôi chỉ có TypeMock Isolator và nó hoạt động với Windows Phone 7 (sắp xếp).

Bạn cần tạo dự án Visual Studio Test mặc định và bạn sẽ gặp lỗi khi nói rằng dự án Windows Phone 7 của bạn không thể tham chiếu được, nhưng vì lý do nào đó, Trình quản lý và kiểm tra hoạt động hoàn hảo.

Dù sao, tôi thực sự hài lòng với mocks mà nó có thể tạo.

0

Chỉ muốn thông báo một số thông tin mà tôi tìm thấy trên MSDN:

http://msdn.microsoft.com/en-us/library/hh821022.aspx#sec2

Các lớp giả đã được xây dựng bằng tay vì nó không phải là có thể sử dụng một khuôn khổ mocking trên nền tảng Windows Phone. Mocking framework yêu cầu khả năng phát ra mã ngôn ngữ trung gian của Microsoft (MSIL), hiện không khả thi trên nền tảng Windows Phone