2011-11-23 10 views
10

Jak utworzyć czysty odcinek za pomocą Moq? Z Rhino Mocks zrobiłem to tak:Tworzenie kodu pośredniczącego z 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); 
    } 
} 

Jak utworzyć zalążek dla MockRepository.GenerateStub<HttpContextBase>(); użyciu MOQ? A może powinienem zostać z Rhino Mocks?

Odpowiedz

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

Wiem, że istnieje różnica w odgałęzienie i makiety, ale czy implementacja stworzenie makiety lub niedopałek? Wygląda mi na drwinę? –

+3

Nazewnictwo odnosi się do sposobu korzystania z tego obiektu. Jeśli więc nie weryfikujesz niczego na tym obiekcie, to jest to stub, jeśli chcesz - to jest udawanie. – BartoszKP

10

Oto moja propozycja dla Ciebie:

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

Następnie trzeba zrobić konfigurację.

po dalsze informacje patrz homepage of the MOQ project.

+0

Jakiej konfiguracji wymagam? Po prostu muszę go użyć jak w moim kodzie. Nie używam httpContextBaseStub w żadnym innym miejscu. –

+0

Musisz ustawić to w ten sposób, Twoja klasa, której to wymaga, potrzebuje tego. To zależy od testu jednostkowego, który chcesz uruchomić. Możesz powiedzieć to ogólnie. – Fischermaen

+0

Zaktualizowałem mój test. Proszę sprawdzić :) –

Powiązane problemy