当前位置: 首页 > 知识库问答 >
问题:

我如何通过幻像可靠地执行利用requirejs的Jasmine测试?

龙欣德
2023-03-14

我使用phantomjs来运行jasmine测试。我的jasmine测试在describe块周围使用require来确保加载了所有正确的模块。

我的测试无法运行,因为< code>page.evaluate -

我想知道是否有人知道一个真正的好方法。我有一个答案,我将在下面发布,但我很乐意通过其他答案来交换意见。如果你的更好,我会选择它作为答案:)

共有2个答案

慕逸仙
2023-03-14

我的解决方案,使用jQuery可用,是这样的:

在运行任何测试之前加载配置文件。

var jasmine_deferreds = [];

// Setup an event to fire on the document
// I actually did this with native code rather than jquery because
// I wanted to minimize jquery usage

// ....

// setTimeout so all files loaded after this will finish registering their requires
setTimeout( function() {

  $.when.apply( null, jasmine_deferreds ).then( function() {

    // Fire event that was created

  });

}, 5 );

如何建立延迟数组然后解析它们取决于您。我基本上是推送到数组,然后在完成需求时解析。我用自己的版本包装了需求,它知道在完成后自动解析它——所以我不需要在每次测试中手动推送和解析。

然后在我的幻影文件中我这样做:

page.evaluate ->
    mylistener = ( document ) -> jasmine.getEnv().execute();
    document.addEventListener( 'test_ready_event', mylistener, false);

这使得我知道我所有的需求模块都被加载了,而没有一些任意的setTimeout,一旦我加载了太多的文件,这些setTimeout可能会太短。我正在使用的一个setTimeout是安全的,因为它仅用于在主调用堆栈完成后触发。它真的不在乎时间。

阎功
2023-03-14

我做了一些不同的事情——我的超文本标记语言页面有一个函数,包装在一个要求()调用中:

var run_tests = function (specfiles) {
    require(specfiles, function () {
        jasmine.getEnv().execute();
    });
};

然后我进入<code>页面。评估(函数(test_specs){run_tests(test-specs)},['test1.spec'、'test2.spec'])

 类似资料:
  • 步骤1:在此基础上,我使用构建了一个包含所有依赖项的独立jar。 pom.xml 将方法添加到runner类,并根据this、this和this传递cmdline arg。 如何通过cmdline args指向JAR中的目录?

  • 我正在尝试在PhantomJS中运行Jasmine。经过很多努力,我可以归结为: 代码一直执行到it(),但回调永远不会执行:| [编辑]我正在尝试将phantom与jasmine一起用于端到端测试。我已经有了一个应用程序服务器,并且我正在使用Karma进行单元测试。所以我认为testRunner.html不会有帮助。PhantomJS应该登录我的应用程序并做一些事情,我会用Jasmine进行测试

  • 问题内容: 我目前正在开发用于可靠手部检测的系统。 第一步是拍摄手的照片(在HSV颜色空间中),并将手放在一个小矩形中以确定皮肤颜色。然后,我应用阈值过滤器将所有非皮肤像素设置为黑色,并将所有皮肤像素设置为白色。 到目前为止,它运行良好,但是我想问一下是否有更好的方法来解决此问题?例如,我发现有几篇论文提到白人的具体色彩空间,但没有一篇对亚洲/非洲/高加索色调进行比较。 顺便说一句,我正在通过Py

  • GHC有很多可以执行的优化,但我不知道它们都是什么,也不知道它们在什么情况下执行的可能性有多大。 我的问题是:我可以期望它每次应用什么转换,或者几乎如此?如果我看一段经常执行(评估)的代码,我的第一个想法是“嗯,也许我应该优化它”,在这种情况下,我的第二个想法应该是“不要想它,GHC得到了这个”? 我在读《流融合:从列表到流再到什么都没有》这篇论文,他们使用的将列表处理改写成另一种形式的技术,GH

  • 我需要从tarantool中选择所有数据,从一个空间中选择两个值。如何像mysql一样执行对tarantool的请求? 现在我可以提出两个要求: 但我不知道如何将结果合并成一个;(

  • 本文向大家介绍利用Jasmine对Angular进行单元测试的方法详解,包括了利用Jasmine对Angular进行单元测试的方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要介绍的是关于利用Jasmine对Angular单元测试的相关内容,以下是我假定那些极少或压根没写单元测试的人准备的,因此,会白话解释诸多概念性问题,同时会结合 Jasmine 与之对应的方法进行讲解。 一、概念