2011-11-23 13 views
10

¿Cómo creo un stub puro usando Moq? Con burla de Rhino lo hice así:Cómo crear un stub con 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); 
    } 
} 

¿Cómo puedo crear un talón de MockRepository.GenerateStub<HttpContextBase>(); usando Moq? ¿O debería quedarme con Rhino Mocks?

Respuesta

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

Sé que hay una diferencia en un talón y se burlan, pero ¿su aplicación crean un talón simulada o? Parece una burla para mí? –

+3

La denominación se refiere a la forma en que usa este objeto. Entonces, si no verificas nada en estos objetos, es un talón, si lo deseas, es un simulacro. – BartoszKP

10

Aquí está mi sugerencia para usted:

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

entonces usted tiene que hacer la instalación.

Para más información ver homepage of the MOQ project.

+0

¿Qué configuración necesito? Solo necesito usarlo como en mi código. No uso httpContextBaseStub en ningún otro lado. –

+0

Tienes que configurarlo de esa manera, tu clase bajo prueba lo necesita. Depende de la prueba unitaria que desee ejecutar. Puedes decirlo en general. – Fischermaen

+0

He actualizado mi prueba. Por favor marque :) –

Cuestiones relacionadas