Search code examples
c#unit-testingrhino-mocksstub

Rhino Mocks Stub Method not working


Why won't this test method work? I keep getting requires a return value or an exception to throw.

public AuthenticateResponse Authenticate(string username, string password)
        {
            string response = GetResponse(GetUrl(username, password).ToString());

            return ParseResponse(response);
        }


        [TestMethod()]
        [ExpectedException(typeof(XmlException))]
        public void Authenticate_BadXml_ReturnException()
        {
            MockRepository mockRepository = new MockRepository();
            SSO sso = mockRepository.Stub<SSO>();

            sso.Stub(t => t.GetResponse("")).Return("<test>d");

            AuthenticateResponse response = sso.Authenticate("test", "test");
        }

Solution

  • Your repository is still in "record" mode. You're mixing record/replay semantics (the "old" way of doing things) with the newer AAA (arrange/act/assert) style.

    Instead of creating your own repository, simply use:

    var sso = MockRepository.GeneateStub<SSO>();
    

    Everything should work fine now.