问题标签 [gwttestcase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gwt - 构建 GWT 测试用例时如何让服务器端初始化代码运行?
我正在使用 GWT 2.4。我有许多扩展 GwtTestCase 的测试文件。我的问题是,我如何以及在哪里放置代码,以便服务器端在我的测试运行之前初始化一些数据?
我尝试创建一个简单的 servlet ...
并将其定义添加到我的模块的 .gwt.xml 文件中......
但我注意到这个 init 方法从未被调用过。
java - GWTTestCase:回调中的 JUnit 断言引发 JavaScriptException
因此,如果我调用任何从回调方法内部失败的 JUnit 断言,我会得到这个异常:
一个简单的测试产生这个:
运行此测试时,就 JUnit Runner 所关注的 Eclipse 中显示的绿色条而言,它“通过”,但显然它应该失败。出现任何问题的唯一迹象是控制台中的异常。如果我将 fail() 移到回调之外,它会正常失败并表明是这样。此外,解析为 true 的断言表现正常,因此测试似乎根本不知道如何检测来自匿名类中的故障。关于如何在 GWTTestCase 的回调/匿名类中使用 JUnit 断言,我有什么不正确的理解吗?
gwt - GWTTestCase 调用导致 ReferenceError
案子
我正在尝试GWTTestCase
为某个类编写一个,用作我正在构建的历史浏览工具栏组件的演示者。
问题
一个(或多个)脚本显然没有为 jUnit 测试环境加载。运行应用程序(开发模式)时一切正常,但是当我尝试运行测试用例时,应用程序(Web 服务器和用户代理)无法加载,并引发以下异常(为简单起见缩短了堆栈跟踪) :
相关来源
这是使用的(非常简单)GWTTestCase
:
依赖项/上下文信息
jUnit 4.10 用作外部 jar - 并被类路径成功引用,并且jUnit 模块不再像 GWT 团队指示的那样被继承 - 扩展.gwt.xml
文件从 GWT ( <inherits name="com.google.gwt.junit.JUnit" />
)继承 jUnitGWTTestCase
将自动继承它。
我Raphael-GWT
作为一个单独的模块使用。该模块也在主模块的.gwt.xml
文件中被引用,并且在所有其他情况下(开发/生产模式)运行良好。
我试过什么
- 简化案例,例如如上所示剥离测试案例。
- 验证部署描述符中的继承模块。
- 不同的 jUnit 版本,即在 V3 或 V4 下运行,并在每次更改时手动编译。
- 在谷歌上查找,以及在stackoverflow上查找,均无济于事。
更多相关信息
Raphael
lib 被用于我为 Dracula(一个 JS 图形可视化库)编写的 GWT 包装器,因此dracula_graffle.js
源自那里。附上.gwt.xml
文件来源供参考:
gwt - GWTTestCase 与 RequestFactory 返回 404
我无法让 RequestFactory 与 GWTTestCase 一起工作。我看到以下内容:
在我的 MyAppJUnit.gwt.xml 文件中,我有这个:
当我在浏览器中运行它时,它只是请求/myApp/gwtRequest
,因为我已经rename-to
在模块文件中设置了。我尝试在 JUnit 模块中设置相同的内容,但没有效果。绝望中我什至尝试添加
到我的 web.xml,但这也不起作用。想法?
java - gwt-log 和 gwt-test-utils 不能一起玩
我有一个项目,其中散布着 gwt-log 日志记录行。现在我正在尝试编写一些单元测试,但似乎没有任何效果。
我测试的任何使用 gwt-log 工具的类都会引发以下异常:
我不需要记录器在单元测试期间运行,我更愿意模拟它。我尝试使用 Mockito 以几种不同的方式模拟记录器......显然我不知道我在这里做什么,以下代码片段都没有帮助这种情况:
或者
任何有关如何解决此问题的线索将不胜感激!
unit-testing - 如何在 gwt mvp 应用程序测试的测试用例中模拟/提供不同的事件类?
我正在使用 gwtp,我正在我的视图上编写一些测试,我在我的视图中有一些事件,如 ChangeEvent、clickEvent,所以我怎样才能获得这些我通过模拟尝试但它不起作用的对象。
我认为的代码是
`@UiHandler("submit") void onClickSubmit(ClickEvent e) { doClick(); }
`
gwt - GWT 是否支持在 GWTTestCase 期间包含样式表?
我有一些简单的 GWT 客户端代码,我想使用GWTTestCase
GWTTestSuite 进行测试。
但是,这些测试需要使用一些CSS stylesheet
(仅测试需要)。
我的第一次尝试是:
- 定义一个
ClientBundle
提供用于测试的 CSS 文件。 - 在我
gwtSetUp()
的测试中,调用 `ensureInjected() 方法来添加 CSS 文件,然后再调用我的测试 - 测试 CSS 样式是否应用于 DOM 中的特定元素,例如
代码:
我没有错误,但这似乎不起作用。
查看控制台的日志(在 Junit 测试期间)我发现了这个:
初始化 ResourceGenerator
寻找可操作的 CssResource 子类型
计算 CSS 类替换
准备方法 css
寻找资源
解析 CSS 样式表文件:/D:/Workspace/libraries/gwt-text/gwt-text/src/test/java/com/t/i/client/ CSSDecorationTest.css
扫描 CSS 以获取需求
创建字段
创建 css() 的赋值
创建图像精灵类
替换基于属性的 @if 块
替换 CSS 类名
在节点边框颜色中执行替换:.....;
我的 css 文件简单包含:
编辑
请参阅此链接:https ://stackoverflow.com/a/10575244/921244
这是错误的方法,因为 getStyle 不提供 CSS 计算样式。太糟糕了。
java - 测试 maven 构建的 java 库是否适用于 GWT
我有一个 java 库。我用 Maven 构建它。我想确保 GWT 用户可以在某处使用它。我在适当的地方添加了@GwtCompatible 和@GwtIncompatible。现在,我想测试这是否会按预期工作。
该库是 Java 中的一个测试框架 (http://github.com/truth0/truth) - 它提供了各种测试命题等。人们将在纯 Java 单元测试中使用它,但他们也将使用它在 GWT 集成测试中(例如扩展 GWTTestCase)。我自己没有这方面的应用程序,但我需要验证它在 GWT 中使用时不会中断。
一个普通的 JUnit 测试会(微不足道地)使用如下代码:
我已经创建了一个小的 GWTTestCase,我希望在它的基础上充分利用这个库的 GWT 兼容子集。简单的 GWTTestCase 示例如下所示:
我的 TruthTest.gwt.xml 看起来像这样(我承认我在这里有点“装货”)
当我将 gwt-maven-plugin 与“编译”和“测试”执行绑定时,两个执行都正确绑定并在输出中运行。生成并运行了一个小服务器,但测试超时。当我检查生成的服务器的内容时,我看到了很多生成的 javascript,但是我在生成的服务器的任何地方都看不到与我在测试中编写的代码相关的代码。
我选择了值 457923,希望这个幻数在生成的代码中可以被 grep 识别,但我找不到它。我只是不确定,从文档中,我需要做些什么来确保我拥有正确的 GWT 编译的所有代码。我没有看到任何可以与 Truth 框架本身相关联的代码,也没有看到 GWTTestCase 的测试方法。
有 gwt-maven-plugin 的专家吗?注意 - 这不是一个应用程序,它是一个库 - 我只想强制 gwt 编译器和一个 GwtTestCase 强制 GWT 基础架构验证我认为会从中产生的内容。我需要在一个小测试 WAR 插件上运行 maven-failsafe-plugin 吗?嘎嘎。
gwt - 如何在 GwtTestCase 测试中使用 Jackson
嗨,我正在做一些 GwtTestCase 测试。我想在测试中使用 Jackson ObjectMapper,但是出现以下错误
我知道我需要继承杰克逊的模块,但是我不知道如何实现它。我需要为杰克逊创建模块吗?如何?
gwt - Jenkins 中的 GWTTestCase 超时
当我启动通过 Maven 运行 GWTTestCase 的 Jenkins 作业时,该作业随机失败并出现相同的异常。我无法在 Eclipse 中重现此行为。下面是例外。