Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java gwtmockito与requestbuilder_Java_Gwt_Gwtmockito - Fatal编程技术网

Java gwtmockito与requestbuilder

Java gwtmockito与requestbuilder,java,gwt,gwtmockito,Java,Gwt,Gwtmockito,这是我课程的一部分,我想测试: public class PrefPanel extends Composite { private static PrefPanelUiBinder uiBinder = GWT.create(PrefPanelUiBinder.class); interface PrefPanelUiBinder extends UiBinder<Widget, PrefPanel> {} public PrefPanel(GlobalPara

这是我课程的一部分,我想测试:

public class PrefPanel extends Composite {

  private static PrefPanelUiBinder uiBinder =  GWT.create(PrefPanelUiBinder.class);

  interface PrefPanelUiBinder extends UiBinder<Widget, PrefPanel> {}

  public PrefPanel(GlobalParams globalParams) {
    initWidget(uiBinder.createAndBindUi(this));

    String url = URL.encode(globalParams.getBaseUrl() + "book.html");
    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
    try {
      Request response = builder.sendRequest(jsonString, new RequestCallback() {

      @Override
      public void onError(Request request, Throwable exception) {
        displayError("Error");
      }

      @Override
      public void onResponseReceived(Request request, Response response) {
        updateBookList(response.getText());
      }
    });
  } catch (RequestException e) {
    displayError("Error");
  }
当我开始调试时,会收到一条错误消息: -url不能为空 -java.lang.IllegalArgumentException -位于com.google.gwt.http.client.StringValidator.throwlfEmptyOrNull(StringValidator.java:52) -

错误发生在我创建RequestBuilder(新RequestBuilder)的行上。我不知道如何创建RequestBuilder的新实例。你能给我一个线索吗

我听说gwtmockit不能处理构造函数。有没有办法避免使用新的RequestBuilder?我必须使用powermockito吗

@RunWith(GwtMockitoTestRunner.class)
public class PositionServiceTest {

@Mock RequestBuilder builder;
@Mock GlobalParams globalParams;
@Mock URL url;
private PrefPanel prefPanel;

@Before
public void setup() {
  GwtMockito.useProviderForType(RequestBuilder.class, new FakeProvider() {
    @Override
    public Object getFake(Class aclass) {
      return builder;
    }
  });

when(globalParams.getBaseUrl()).thenReturn("http://localhost/");
prefPanel = new PrefPanel(globalParams);
...