GWT是否支持在GWTTestCase期间包含样式表?
我有一些简单的GWT客户端代码,我想使用GWT是否支持在GWTTestCase期间包含样式表?,gwt,junit,gwttestcase,Gwt,Junit,Gwttestcase,我有一些简单的GWT客户端代码,我想使用GWTTestCase和GWTTestSite进行测试 但是,这些测试需要使用一些CSS样式表(仅用于测试) 我的第一次尝试是: 定义提供用于测试的CSS文件的ClientBundle 在mygwtSetUp()中,在调用我的测试之前,调用'ensureInjected()方法添加CSS文件 例如,测试CSS样式是否应用于DOM中的特定元素 代码: assertEquals(“蓝色”,element.getStyle().getBorderColor())
GWTTestCase
和GWTTestSite进行测试
但是,这些测试需要使用一些CSS样式表
(仅用于测试)
我的第一次尝试是:
ClientBundle
gwtSetUp()
中,在调用我的测试之前,调用'ensureInjected()方法添加CSS文件assertEquals(“蓝色”,element.getStyle().getBorderColor());
我没有收到任何错误,但这似乎不起作用。
查看控制台的日志(在Junit测试期间),我发现:
正在初始化ResourceGenerator发现可操作的CSS源亚型
计算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{
边框颜色:蓝色;
}
编辑
请参阅此链接:
这是错误的方法,因为getStyle不提供CSS计算样式。太糟糕了。如果您不需要对CSS做任何特殊的处理(即它是一个简单的CSS,而不是
CssResource
),那么您只需创建一个专用于测试的GWT模块(GWT.xml
文件)(将其设置为
您的被测模块,并让您的GWTTestCase
的getModuleName
返回测试特定模块的名称,而不是被测模块的名称),您可以在其中添加
以包含样式表(最简单的方法是,如果样式表仅用于测试,请将其放在测试特定的gwt.xml
文件旁边的public
子文件夹中)。看 或者,像您那样使用
CssResource
,您可能希望在调用ensureInjected()
之后立即调用