我有一些简单的GWT客户端代码,我想使用GWTTestCase
和GWTTestSuite进行测试。
但是,这些测试需要使用一些CSS stylesheet
(仅用于测试)。
我的第一次尝试是:
ClientBundle
。gwtSetUp()
中,调用`ensureInjected()方法在我的测试被调用之前添加CSS文件代码:
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类名称 在节点border-color中执行替换:.....;
我的css文件简单包含:
.d {
border-color: blue;
}
请参阅此链接:https://stackoverflow.com/a/10575244/921244
这是错误的方法,因为getStyle不提供CSS计算样式。太糟糕了。
答案 0 :(得分:2)
如果你不需要对你的CSS做任何特别的事情(即它是一个简单的CSS,而不是CssResource
),那么你可以简单地创建一个GWT模块(gwt.xml
文件)专用于您的测试(将<inherits>
作为模块测试并让GWTTestCase
的{{1}}返回测试专用模块的名称,而不是模块测试中),您可以在其中添加getModuleName
以包含样式表(如果样式表仅用于测试,则最简单的方法,将其放在{{1}中在特定于测试的<stylesheet src="…" />
文件旁边的子文件夹
见https://developers.google.com/web-toolkit/doc/latest/DevGuideOrganizingProjects#DevGuideAutomaticResourceInclusion
或者,像您一样使用public
,您可能希望在致电gwt.xml
后致电StyleInjector.flush()
。