0

我有一些简单的 GWT 客户端代码,我想使用GWTTestCaseGWTTestSuite 进行测试。

但是,这些测试需要使用一些CSS stylesheet(仅测试需要)。

我的第一次尝试是:

  1. 定义一个ClientBundle提供用于测试的 CSS 文件。
  2. 在我gwtSetUp()的测试中,调用 `ensureInjected() 方法来添加 CSS 文件,然后再调用我的测试
  3. 测试 CSS 样式是否应用于 DOM 中的特定元素,例如

代码:

assertEquals("blue", element.getStyle().getBorderColor());

我没有错误,但这似乎不起作用。

查看控制台的日志(在 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 文件简单包含:

.d {
    border-color: blue;
}

编辑

请参阅此链接:https ://stackoverflow.com/a/10575244/921244

这是错误的方法,因为 getStyle 不提供 CSS 计算样式。太糟糕了。

4

1 回答 1

2

如果您不需要对 CSS 做任何特殊处理(即它是一个简单的CSSCssResource而不是你的返回测试特定模块的名称而不是被测模块的名称,您将在其中添加 a以包含您的样式表(如果样式表仅用于测试,则最简单的方法是将其放入测试特定文件旁边的子文件夹)。 请参阅https://developers.google.com/web-toolkit/doc/latest/DevGuideOrganizingProjects#DevGuideAutomaticResourceInclusiongwt.xml<inherits>GWTTestCasegetModuleName<stylesheet src="…" />publicgwt.xml

或者,CssResource像您一样使用,您可能想在StyleInjector.flush()调用ensureInjected().

于 2012-07-24T09:51:10.600 回答