First Unit Tests! ASP.NET MVC with Repositories causing errors -
i new unit testing, starting on first set of tests today. using library justmock
telerik. though unit testing information good. having bit of trouble interface service passes through method. below membershipcontroller.register(model)
method...
[captchavalidator] [httppost] public actionresult register(models.membership.registration model) { // mesure, truncate spaces given system.text.regularexpressions.regex.replace(model.email, @"\s", ""); if (modelstate.isvalid) { // attempt register user , return applicable status has // result. var createstatus = membershipservice.registermember(model.email, model.password); // if member able created successfully, log them in , begin // authentication portion of registration, otherwise, display registration // errors , return view. if (createstatus == membership.membercreatestatus.success) { formsauthentication.signin(model.email, false /* createpersistentcookie */); return redirecttoaction("success"); } else { modelstate.addmodelerror("", membership.validator.errorcodetostring(createstatus)); } } // if got far, failed, redisplay form return view(model); }
and here paltry test trying run...
[testmethod] public void register_post_returnsredirectonsuccess() { // arrange var controller = mock.create<web.controllers.membershipcontroller>(); var repository = mock.create<membership.imembershipservice>(); mock.arrange(() => repository.registermember("acceptible@email.com", "acceptiblepassword")).returns(membership.membercreatestatus.success); // model var model = new web.models.membership.registration { email = "acceptible@email.com", password = "acceptiblepassword", confirmpassword = "acceptiblepassword" }; // act var result = controller.register(model); // assert assert.isinstanceoftype(result, typeof(redirecttorouteresult)); }
the test fails because membershipservice
resolving null. i'm not sure here. first forray unit testing aspect of asp.net mvc. can give me advice?
i using ninject
inject imembershipservice
through constructor. implemented class membershipservice
. code runs fine when run it, unit tests fail.
i don't see passing repository anywhere controller. have imembershipservice parameter in controller's constructor can pass in when needed or use mvc's service locator grab ninject instance , pass in.
:)
Comments
Post a Comment