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

Java 3D LWJGL collision -

methods - python can't use function in submodule -

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