c# - unit test with lambda fail using rhino mock -
if have test
expect.call(_session.single<admin>(x => x.email == usermodel.email)).repeat.once().return(null); telling me
rhino.mocks.exceptions.expectationviolationexception : isession.single(x => (x.email == value(enquete.test.controllers.membercontrollertest+<>c__displayclassb).usermodel.email)); expected #1, actual #0.
it fails if add .ignorearguments() works. possible test using lambda? if debug can see email same.
here's full test :
[test] public void register_post_returnredirectonsuccess() { _builder.initializecontroller(_controller); var usermodel = testhelper.createmembermodel(); var returnmemberrole = "member"; var temppassword = "val1dpass"; var member = testhelper.createmember(usermodel); var emailsubscription = "subscription@corpiq.com"; var subjectnotification = "sujet du meessaaggee"; var mailusessl = "true"; var message = usermodel.firstname + " " + usermodel.lastname + " s'est inscrit au système d'enquête en ligne, veuillez confirmer son inscription."; member.passwordexpire = datetime.now.adddays(-1); member.phone = usermodel.phone; member.membernumber = usermodel.membernumber; member.passwordexpire = datetime.now.adddays(-1); expect.call(_session.single<admin>(x => x.email == usermodel.email)).repeat.once().return(null); expect.call(_session.single<member>(x => x.email == usermodel.email)).repeat.once().ignorearguments().return(null); expect.call(_authservice.generatepassword()).repeat.once().return(temppassword); expect.call(_authservice.memberrole).repeat.once().return(returnmemberrole); expect.call(_authservice.registeruser(usermodel.email, temppassword, returnmemberrole)).repeat.once().return(membershipcreatestatus.success); _session.add(member); lastcall.repeat.once(); _session.commitchanges(); lastcall.repeat.once(); expect.call(_confighelper.getvalue("emailsubscription")).repeat.once().return(emailsubscription); expect.call(_confighelper.getvalue("subjectnotification")).repeat.once().return(subjectnotification); expect.call(_confighelper.getvalue("mailusessl")).repeat.once().return(mailusessl); _mailhelper.sendmail(emailsubscription, subjectnotification, message, convert.toboolean(mailusessl)); lastcall.repeat.once(); _mock.replayall(); var result = _controller.register(usermodel); _mock.verifyall(); result.assertactionredirect().toaction<membercontroller>(c => c.registersuccess()); } thank you!
the lambda in unit test compiles class-level method (a method inside unit test). inside controller, different lambda compiles class-level method (inside controller). 2 different methods used rhino mocks shows expectation error. more here: http://groups.google.com/group/rhinomocks/browse_frm/thread/a33b165c16fc48ee?tvc=1
Comments
Post a Comment