0

我想测试我的调用Window.open(String)是否使用正确的 URL(下载文件)。

除了像这样使用部分模拟之外,还有什么更好的方法吗?

MySUT sut = Mockito.spy(new MySUT());
String expectedURL = "http://www.example.com";

doNothing().when(sut).openWindow(expectedURL);

sut.doSomethingThatOpensURL();

verify(sut).openWindow(expectedURL);

在哪里openWindow(String)尽可能简单MySUT

void openWindow(String url) {
    Window.open(url);
}

GwtMockito 是否为您提供了一些东西来测试执行本机 javascript 的方法,例如Window.open(String)

4

1 回答 1

0

我想没有能力使用GwtMockito来验证它。但我相信使用PowerMockEasyMock是可能的。这个模拟框架为测试静态方法和第 3 方类提供了极大的灵活性。

我刚刚创建了一个如何测试 Window.open() 的简单示例。例如,在我的测试用例中,我只是检查 Window.alert()。

@RunWith(PowerMockRunner.class)
@PrepareForTest(Window.class)
@SuppressStaticInitializationFor("com.google.gwt.user.client.Window")
public class SimpleTester {

  /** Simple class for test. */
  private class TestClass {
    public void open(String url) {
      Window.alert(url);
    }
  }

  @Test
  public void test() {
    PowerMock.mockStatic(Window.class);

    TestClass obj = new TestClass();
    Window.alert("test");
    EasyMock.expectLastCall();
    PowerMock.replay(Window.class);

    obj.open("test");
    PowerMock.verify(Window.class);
  }
}
于 2015-01-30T13:52:29.683 回答