2011-11-23 18 views
10

Làm thế nào để tạo một cuống thuần túy bằng cách sử dụng Moq? Với Rhino Mocks tôi đã làm nó như thế này:Làm thế nào để tạo ra một sơ khai với Moq

[TestFixture] 
public class UrlHelperAssetExtensionsTests 
{ 
    private HttpContextBase httpContextBaseStub; 
    private RequestContext requestContext; 
    private UrlHelper urlHelper; 
    private string stylesheetPath = "/Assets/Stylesheets/{0}"; 

    [SetUp] 
    public void SetUp() 
    { 
      httpContextBaseStub = MockRepository.GenerateStub<HttpContextBase>(); 
      requestContext = new RequestContext(httpContextBaseStub, new RouteData()); 
      urlHelper = new UrlHelper(requestContext); 
    } 

    [Test] 
    public void PbeStylesheet_should_return_correct_path_of_stylesheet() 
    { 
     // Arrange 
     string expected = stylesheetPath.FormatWith("stylesheet.css"); 

     // Act 
     string actual = urlHelper.PbeStylesheet(); 

     // Assert 
     Assert.AreEqual(expected, actual); 
    } 
} 

Làm thế nào tôi sẽ tạo ra một stub cho MockRepository.GenerateStub<HttpContextBase>(); sử dụng Moq? Hay tôi nên ở lại với Rhino Mocks?

Trả lời

1
var mockHttpContext = new Mock<HttpContextBase>(); 
+0

Tôi biết có một sự khác biệt trong một cuống và giả, nhưng không thực hiện của bạn tạo ra một cuống giả hay? Trông như một cái giả với tôi? –

+3

Việc đặt tên đề cập đến cách bạn sử dụng đối tượng này. Vì vậy, nếu bạn sẽ không xác minh bất cứ điều gì trên các đối tượng này đó là một sơ khai, nếu bạn sẽ - đó là một mô hình. – BartoszKP

10

Dưới đây là gợi ý của tôi dành cho bạn:

Mock<HttpContextBase> mock = new Mock<HttpContextBase>(); 
mock.SetupAllProperties(); 

Sau đó, bạn phải làm các thiết lập.

Đối với thông tin hơn nữa thấy homepage of the MOQ project.

+0

Tôi cần thiết lập gì? Tôi chỉ cần sử dụng nó như trong mã của tôi. Tôi không sử dụng httpContextBaseStub bất kỳ nơi nào khác. –

+0

Bạn phải thiết lập nó theo cách đó, lớp học của bạn đang được kiểm tra cần nó. Nó phụ thuộc vào bài kiểm tra đơn vị bạn muốn chạy. Bạn có thể nói nó nói chung. – Fischermaen

+0

Tôi đã cập nhật bài kiểm tra của mình. Xin vui lòng kiểm tra :) –

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