Eclipse富Ajax开发平台在CAS Software AG项目中的应用
2009-12-02 00:00:00 来源:WEB开发网单元测试中有时也会遇到的一个问题是对服务器和/或数据层进行测试。通常单元测试代码直接与服务器、数据库等直接通信来完成它们的测试。这种类型的测试有其缺陷,CAS的开发者们也遇到过,单元测试由于需要和其他层的通信而变得很慢。一个通常的的解决办法是用假对象,在测试中用假对象来代替“真对象”。在 java中有很多假对象的框架,包括Mockito、EasyMock和JMock,它们用来简化假对象的创建过程。对JavaScript来说,也有这样的假对象框架比如JSMock和Mock4JS。
之前您看到了用于测试JavaScript层的单元测试代码,之后您将会看到一段测试Java层的例子。对Eclipse 1.1来说,这个框架框架基本上包含了相当于JUnit的测试的功能,不同的是它可以使需要OSGi环境的测试正常运行。如果您需要执行期间更新UI的单元测试,您可以非常简单地从org.eclipse.rap.junit.RAPTestCase扩展。但是,如果对单元测试来说不需要更新用户界面,那么相应地,你可以扩展JUnit的org.junit.TestCase类。下面是一个关于包含了用户界面交互的RAP的测试用例:
public class RapJUnitTest extends RAPTestCase {
public void testOpenView() {
try {
IWorkbenchPage page = getPage();
page.showView( "org.eclipse.rap.demo.DemoTreeViewPartI" );
} catch( PartInitException e ) {
e.printStackTrace();
}
assertEquals( 1, getPage().getViewReferences().length );
getPage().hideView( getPage().getViewReferences()[ 0 ] );
assertEquals( 0, getPage().getViewReferences().length );
}
private IWorkbenchPage getPage() {
IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
return window.getActivePage();
}
}
更多精彩
赞助商链接