2012-03-06 26 views
11

Tôi hiện đang đánh giá ServiceStack (để tạo các dịch vụ dựa trên phần còn lại trong .Net). Một trong những lĩnh vực quan tâm là bên thử nghiệm. Dịch vụ còn lại của tôi sẽ có một số dịch vụ ứng dụng được tiêm vào (hiện đang sử dụng Autofac). Những gì tôi cần là một cơ chế để kiểm tra lớp còn lại và xác định kỳ vọng trên lớp ứng dụng của tôi (thông qua MOQ), vì vậy tôi không làm bài kiểm tra tích hợp nhưng đơn vị kiểm tra lớp này?Ngăn xếp dịch vụ và Mocking, mọi hướng dẫn?

Bất kỳ ý tưởng nào về cách thực hiện việc này?

Trả lời

12

A ServiceStack Service giống như bất kỳ lớp Dịch vụ C# bình thường nào và có thể được mô phỏng chính xác giống như bất kỳ lớp nào khác. Sự phụ thuộc tối thiểu cho ServiceStack Service đang triển khai điểm đánh dấu giao diện IService phụ thuộc và nơi bất kỳ dịch vụ nào chỉ chấp nhận Yêu cầu DTO và trả về bất kỳ đối tượng nào. Một cách để thử nghiệm Đơn vị Dịch vụ ServiceStack là sử dụng DirectServiceClient là seen in this example, lợi ích của việc này là nó cho phép bạn sử dụng cùng một Bài kiểm tra Đơn vị làm kiểm thử tích hợp - kiểm tra tất cả các điểm cuối XML, JSON, JSV và SOAP khác nhau .

Nếu không, bạn có thể kiểm tra đơn vị và Mock nó giống như bất kỳ lớp khác, ví dụ:

var service = new TestService { 
    MyDependency = new Mock<IMyDependency>().Object 
}; 
var response = service.Get(new Test { Id = 1 }); 
Assert.That(response.Result, Is.EqualTo("Hello, 1")); 
+0

@Thanks. Tôi nghĩ rằng chúng tôi sẽ đi servicestack cho dự án mới của chúng tôi. Làm tốt lắm. –

+2

Khi tôi thử dịch vụ theo cách này, các thuộc tính lọc dường như không được kích hoạt, đó có phải là hành vi được mong đợi không? – Shagglez

+0

Khi bạn Giả lập 'IService 'bạn chỉ sử dụng điều này để cô lập các phụ thuộc. Tất cả các thuộc tính lọc phụ thuộc vào nhiều ngăn xếp đang chạy (tức là thiết lập/cấu hình/khởi tạo được chỉ định trong lớp AppHost của bạn). Nếu bạn cần kiểm tra mã trong các thuộc tính của bộ lọc thì các lớp thuộc tính cần được kiểm tra độc lập. – CodeMonkeyKing

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