首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GwtMockito:有没有办法测试Window.open()?

GwtMockito:有没有办法测试Window.open()?
EN

Stack Overflow用户
提问于 2015-01-30 19:36:42
回答 1查看 522关注 0票数 0

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

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

代码语言:javascript
复制
MySUT sut = Mockito.spy(new MySUT());
String expectedURL = "http://www.example.com";

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

sut.doSomethingThatOpensURL();

verify(sut).openWindow(expectedURL);

MySUT中,openWindow(String)尽可能简单

代码语言:javascript
复制
void openWindow(String url) {
    Window.open(url);
}

GwtMockito是否提供了一些东西来测试像Window.open(String)这样执行原生javascript的方法

EN

回答 1

Stack Overflow用户

发布于 2015-01-30 21:52:30

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

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

代码语言:javascript
复制
@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);
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28235072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档