c# .net unit-testing mocking rhino-mocks

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?