On 23 oct, 08:40, giannisdag <[email protected]> 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("[email protected]");
>
> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-web-toolkit?hl=en.