asp.net web api - Creating testcases using nunit and moq on WEB API controllers -


i trying create unit test cases using nunit on controllers in existing web api project. using moq mocking framework. in here mock repository return expected result.i not sure can @ point of setting of repository mockup , validating result. can suggest if whatever doing right ? took random controller question. advise or guidance example url appreciated.

[testcase] public void testmethod1() {     accountcontroller ac = new accountcontroller();     var mockauthrepository = new mock<authrepository>();     //mockauthrepository.setup(m=>m.registeruser(it.isany<usermodel>)) }   [routeprefix("api/account")] public class accountcontroller : apicontroller { private readonly authrepository _repo;     public accountcontroller()     {         _repo = new authrepository();     } }  [httppost] [authorize(users = "admin")] [route("register")] public async task<ihttpactionresult> register(usermodel usermodel) {     identityresult result = await _repo.registeruser(usermodel);     ihttpactionresult errorresult = wraperror(result);     if (errorresult != null)     {         return errorresult;     }     return ok(); } private ihttpactionresult wraperror(identityresult result) {     if (result == null)     {         return internalservererror();     }     if (!result.succeeded)     {         if (result.errors != null)         {             foreach (string err in result.errors)         {             modelstate.addmodelerror("", err);         }     }     if (modelstate.isvalid)     {         return badrequest();     }     return badrequest(modelstate); } return null; } 

in specific test use setups these:

mockauthrepository   .setup(m => m.registeruser(it.isany<usermodel>))   .returns(new list<usermodel> {     new usermodel { // specific properties },     new usermodel { // specific properties },     new usermodel { // specific properties }   }.asqueryable()); 

and make assertion selected users.

for example, can test register method prevent registering existing user placing in mockauthrepository same user in controller input , assert specific error code generated.

you can use mocks check if code called using verify method param times.once, times.never etc..

good luck!


Comments

Popular posts from this blog

methods - python can't use function in submodule -

Java 3D LWJGL collision -

c# - ErrorThe type or namespace name 'AxWMPLib' could not be found (are you missing a using directive or an assembly reference?) -