c# - ¿Por qué Rhino Stubs me permite establecer expectativas sobre ellos?
.net unit-testing (1)
La razón de este comportamiento se basa en la limitación de IntelliSense (en los métodos de extensión) + diseño de Rhinomocks (+ error en las afirmaciones) como expliqué aquí .
El siguiente ejemplo muestra que el método Expect
no tiene nada más que el método Stub
en los stubs.
public class Foo
{
public virtual string DoSomthing()
{
return String.Empty;
}
}
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var f = MockRepository.GenerateStub<Foo>();
f.Expect(x => x.DoSomthing())
.Return("2");
f.VerifyAllExpectations();
}
}
Si va a ejecutar el ejemplo anterior, verá que la prueba no fallará (aunque DoSomthing
nunca se llamó ...)
Esta pregunta aclara las diferencias conceptuales entre los simulacros y los talones en Rhino: ¿Cuáles son las diferencias entre los simulacros y los talones en Rhino Mocks?
Sin embargo, me confunde por qué los objetos Rhino Stub proporcionan métodos como .Expect
y .VerifyAllExpectations()
cuando parecen no hacer nada en absoluto. ¿Por qué los objetos de simulacro / trozo aparentemente proporcionan la misma interfaz?
Me está haciendo pensar que me he perdido algo fundamental, ¿o es solo una peculiaridad de implementación?