On 23 oct, 08:40, giannisdag <pascoua...@gmail.com> wrote: > Hi, I am new to testing programming, and cannot solve a probably easy > problem. I have written the following test code: > > public class RegisterPresenterTest { > > private DispatchAsync mockDispatch; > private HandlerManager mockEventBus; > private RegisterView<String> mockView; > private RegisterPresenter registerPresenter; > private User user = null; > > @Before > public void setUp() throws Exception { > mockDispatch = createStrictMock(DispatchAsync.class); > mockEventBus = new HandlerManager(null); > mockView = createStrictMock(RegisterView.class); > } > > @After > public void tearDown() throws Exception { > } > > @Test > public void testOnSubmitButtonClickedNewUserSave() { > registerPresenter = new RegisterPresenter(mockView, > mockEventBus, > mockDispatch, user); > > > expect((String)mockView.getName().getValue()).andReturn("nikos"); > expect(mockView.getSurname().getValue()).andReturn("tester"); > > expect(mockView.getEmail().getValue()).andReturn("t...@gmail.com"); > > expect(mockView.getMobile().getValue()).andReturn("1699876778"); > mockDispatch.execute(isA(Action.class), > isA(AsyncCallback.class)); > expectLastCall().andAnswer(new IAnswer<Object>() { > > @Override > public Object answer() throws Throwable { > final Object[] arguments = > getCurrentArguments(); > AsyncCallback<CreateUserResult> callback = > (AsyncCallback<CreateUserResult>) > arguments[arguments.length - 1]; > callback.onSuccess(new CreateUserResult()); > return null; > } > }); > replay(mockView); > replay(mockDispatch); > registerPresenter.onSubmitButtonClicked(); > verify(mockView); > verify(mockDispatch); > } > > } > > The logic is that when a new user pushes the submit button, the > presenter will begin the save process. In this process in presenter, > the user gets the field values from the view. But when I mock the > view, and add the needed behavior, I get an error like the following. > > When I run it, I am getting null pointer exception at > expect((String)mockView.getName().getValue()).andReturn("nikos"); > So what I am doing wrong?
You have to mock your HasValue returned from getName(): HasValue<?> mockName = createStrictMock(HasValue.class); expect(mockView.getName()).andReturn(mockName); expect(mockName.getValue()).andReturn("nikos"); -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.