GWT莫基托柱试验

GWT莫基托柱试验,gwt,Gwt,这是我的Java代码。我想用mockito为update元素创建一个测试。你能帮我吗 public EditURLComposite( CommandFacade commandFacade, String testID, EventBus eventBus) { super(false, true); this.eventBus = eventBus; this.commandFacade = commandFacade; uiBinder.creat

这是我的Java代码。我想用mockito为update元素创建一个测试。你能帮我吗

public EditURLComposite(
    CommandFacade commandFacade,
    String testID,
    EventBus eventBus) {
  super(false, true);
  this.eventBus = eventBus;
  this.commandFacade = commandFacade;

  uiBinder.createAndBindUi(this);
  eventBinder.bindEventHandlers(this, eventBus);

  if (getElement() != null) {
    getElement().setId(testID);
    url.getElement().setId(testID + "_url");
    addButton.getElement().setId("resetButton");
  }
  dataProvider.addDataDisplay(table);

  // Description
  TextColumn<String> urlColumn = new TextColumn<String>() {
    @Override
    public String getValue(
        String search) {
      return search;
    }
  };

  Column<String, String> deleteColumn = new Column<String, String>(new CellButton(messages.delete())) {
    @Override
    public String getValue(
        final String url) {
      return "Delete";
    }
  };

  deleteColumn.setFieldUpdater(new FieldUpdater<String, String>() {
    @Override
    public void update(
        final int index,
        String url,
        String value) {

      boolean confirm = Window.confirm("Do you want to delete the URL '" + url + "' ?");

      if (confirm == true) {
        EditURLComposite.this.commandFacade.performCommand(
            new DeleteIntegrationURLServerCommand(user.getUsername(), url),
            DeleteIntegrationURLClientCommand.getType(),
            deleteURLEventHandler);
      }
    }
  });

  ResizableTextHeader.addColumn(table, urlColumn, "URL");
  ResizableTextHeader.addColumn(table, deleteColumn, "Delete");
  table.setColumnWidth(urlColumn, "150px");
  table.setWidth("200px");
}

我找到了解决这个问题的办法。有新的代码

    deleteColumn.setFieldUpdater(new FieldUpdater<String, String>() {
      @Override
      public void update(
          final int index,
          String url,
          String value) {
        boolean confirm = Window.confirm("Do you want to delete the URL '" + url + "' ?");
        updateDeleteColumn(url, confirm);
      }
    }


  void updateDeleteColumn(
      String url,
      Boolean confirm) {

    if (confirm == true) {
      EditURLComposite.this.commandFacade.performCommand(
          new DeleteIntegrationURLServerCommand(user.getUsername(), url),
          DeleteIntegrationURLClientCommand.getType(),
          deleteURLEventHandler);
    }
  }
  @SuppressWarnings({"unchecked", "static-access"})
  @Test
  public void testUpdateDeleteColumn() {
    // Setup`enter code here`
    String url = "http://blahblah.com";
    UserRPC user = mockupUser();
    composite.user = user;

    // Test
    composite.updateDeleteColumn(url, true);

    // Checks
    Mockito.verify(commandFacade).performCommand(
        Mockito.any(DeleteIntegrationURLServerCommand.class),
        Mockito.any(Type.class),
        Mockito.any(DeleteIntegrationURLEventHandler.class));

  }