Eclipse富Ajax开发平台在CAS Software AG项目中的应用 - 编程入门网
test.
* * Creates and disposes an objects, and checks if there are some leaking instances.
*
* @type member
* @return {void}
*/
testMemoryLeak : function() {
var ms1 = de.tests.MemoryLeakUtil.getMemorySnapshot();
// create
var dc = new de.cas.qx.ui.widget.calendar.datechooser.DateChooser();
qx.ui.core.Widget.flushGlobalQueues();
// dispose
dc.dispose();
var ms2 = de.tests.MemoryLeakUtil.getMemorySnapshot();
var msg = de.tests.MemoryLeakUtil.checkMemoryLeak(ms1, ms2);
this.assertEquals("", msg, "There are some leaking objects!");
},
Eclipse富Ajax开发平台在CAS Software AG项目中的应用(3)时间:2010-12-04 infoq 译:连小剑这个特定测试试图找到由DateChooser组件引起的潜在的内存泄露 (DateChoose是CAS开发的定制组件中的一个)。 MemoryLeakUtil类是一个CAS 创建的定制工具类,它使用了Qooxdoo提供的一些功能,比如列出内存中的所有 对象。通过Qooxoo提供的功能,他们可以轻易的对内存泄露问题来做测试,而这 类问题是在JavaScript组件开发中很常见的。在测试RAP用户界面时需要面对的 另外一个问题是处理UI的异步和动态的状态。有一些工具可以用来记录用户界面 并且可以把这个过程存储起来,从而可以反复运行。这种类型的测试有助于检查 UI的行为和交互,仿佛是有用户在真正使用它,但是它们也有局限性。在CAS对 web应用程序测试工具做的大致评估中,他们还没有发现一款工具可以处理异步 和非基于页面的用户界面,如遇到基于Ajax的应用程序,它的内容是动态装载的 的而非改变整个页面。 单元测试中有时也会遇到的一个问题是对服务器和/或数据层进行测试。通常 单元测试代码直接与服务器、数据库等直接通信来完成它们的测试。这种类型的 测试有其缺陷,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的测试用例:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |