junit - Mockito -mocking implementation class -
hi trying mock dao layer application has class hire achy application->parser->dao(interface)->dao implementation class
my problem when mocking dao interface or daoimp class using mockito in test case not working test case going db how make our test case use these mocked objects
@runwith(mockitojunitrunner.class) public class csvdataloadserviceimpltest { @mock private meteringdatadao meteringdatadao; list<object> persistedlist; object meteringdata; list<object> s=new arraylist<object>(); @suppresswarnings({ "rawtypes", "unchecked" }) @before public void setup(){ mockito.doanswer(new answer<list<object>>() { @override public list<object> answer(invocationonmock invocation) throws throwable { object[] args = invocation.getarguments(); system.out.println("persist all"); if(persistedlist == null){ persistedlist = (list)args[0]; } else persistedlist.addall((list)args[0]); return null; }}).when(meteringdatadao).persistall(anylist()); mockito.doanswer(new answer<object>() { @override public object answer(invocationonmock invocation) { object[] args = invocation.getarguments(); if(meteringdata == null) meteringdata = (list)args[0]; return true; }}).when(meteringdatadao).persist(anyobject()); } @after public void teardown(){ persistedlist = null; meteringdata = null; } @test public void testdataaccuricy(){ csvdataloadservice csvdataloadservice =new csvdataloadserviceimpl(); csvdataloadservice.loadrackspacecsvdata(); } }
csvdataloadservice csvdataloadservice = new csvdataloadserviceimpl(); you're constructing instance of service, instance doesn't use dao mocked. uses one. need like
csvdataloadservice csvdataloadservice = new csvdataloadserviceimpl(meteringdatadao);
Comments
Post a Comment