标签: qunit

如何使用Qunit的Karma测试运行器使用HTML装置?

我正在使用qunit(http://qunitjs.com)与Karma测试运行器(http://karma-runner.github.io/0.8/index.html)一起玩.我成功创建并运行了简单的测试(100%JavaScript),但现在我正在尝试使用HTML fixture来测试与DOM节点交互的代码.我可以通过这种方式在"文件"中声明它们来加载这些灯具:

{pattern: 'fixtures/myfixture.html', watched: true, served: true, included: false}
Run Code Online (Sandbox Code Playgroud)

它得到了karma的服务器,但我不明白我怎么能访问它的DOM :(

假设我的fixture是一个包含以下标记的简单html文件:

<div id="container">hello world</div>
Run Code Online (Sandbox Code Playgroud)

如何编写可以访问该节点(div)的测试?据我所知,"文档"与"静态"文件夹下的"context.html"文件有关...那么我的夹具的HTML在哪里?

javascript tdd unit-testing qunit karma-runner

25
推荐指数
2
解决办法
2万
查看次数

在ASP.NET中使用QUnit测试Javascript的推荐结构

我有一个标准的ASP.NET MVC(版本2预览2)解决方案,在单独的项目中实际项目和服务器端单元测试.

因为这个项目非常客户端,我想创建一个ClientTest项目,它使用QUnit来测试主项目.

我想过用单个HTML文件创建一个常规的ASP.NET webforms项目,该文件将加载我的Scripts /目录中的各种脚本并使用QUnit测试它们.不幸的是,这将产生另一个ASP.NET开发服务器.我可以在运行测试之前配置正在运行的MVC项目服务器的端口,但必须有一种更好的方法,不仅仅是将测试html文件放入主MVC项目中.

有谁知道更好的方法来解决这个问题?

asp.net asp.net-mvc jquery qunit

20
推荐指数
2
解决办法
3862
查看次数

是否可以模拟window.location对象进行qUnit测试?

假设我有一个实用函数,为了简单起见(真实的东西很复杂且无关紧要),返回当前窗口的查询字符串.

var someUtilityFunction = () {
    return window.location.search.substring(1);
};
Run Code Online (Sandbox Code Playgroud)

现在我想在qUnit中对这个函数进行单元测试(不确定测试工具是否相关):

test('#1 someUtilityFunction works', function () {
    // setup
    var oldQS = window.location.search;
    window.location.search = '?key1=value1&key2=value2&key3=value3';

    var expectedOutput = 'key1=value1&key2=value2&key3=value3';

    // test
    equals(someUtilityFunction(),
        expectedOutput,
        'someUtilityFunction works as expected.');

    // teardown
    window.location.search = oldQS;
});
Run Code Online (Sandbox Code Playgroud)

这里的问题是设置window.location.search为不同的查询字符串会导致页面重新加载,实质上是进入无限的请求循环.有没有办法模拟window.location对象而不someUtilityFunction函数进行任何更改?

javascript unit-testing qunit query-string

18
推荐指数
1
解决办法
1万
查看次数

如何断言函数不会引发异常

QUnit有一个断言用于测试函数引发异常(QUnit/raise).是否可以 - 使用QUnit - 断言函数不会引发异常.

我意识到可以像下面的代码一样测试它:

try {
    theTest();
    ok(true);
} catch (e) {
    ok(false, "Expected to succeed");
}
Run Code Online (Sandbox Code Playgroud)

但我认为使用QUnit应该是可能的.有线索吗?

javascript testing unit-testing qunit

17
推荐指数
1
解决办法
3536
查看次数

如何测试ajax错误回调?

在ajax请求中如何测试错误回调?是否可以模拟网络连接错误?

    $.ajax({
        url: "myUrl",       
        type: 'post',
        dataType : "json",
        data : ({
            myJson
        }),
        success : function(jsonSaveResponse) {  

        },
        error: function (xhr) {

    } 

    }); 
Run Code Online (Sandbox Code Playgroud)

javascript jquery selenium qunit

17
推荐指数
1
解决办法
1万
查看次数

Ember CLI代码覆盖率报告

我正在使用Ember CLI,我正在尝试将代码覆盖率报告与使用testem运行的内置Qunit测试集成.我试图使用伊斯坦布尔,但我无法找到要检测的文件,因为它似乎在查看tmp目录.我尝试在我的testem.json中执行此操作:

{
"framework": "qunit",
"serve_files": [
    "instrumented/components/*.js"
],
"before_tests": "istanbul instrument --output instrumented/components app/components",
"after_tests": "istanbul report",
"test_page": "tests/index.html",
"launch_in_ci": ["PhantomJS"],
"launch_in_dev": ["PhantomJS", "Chrome"],
"reporter": "tap"
}
Run Code Online (Sandbox Code Playgroud)

但我一直得到这样的错误:不行1错误---消息:>

        fs.js:684
          return binding.stat(pathModule._makeLong(path));
                         ^
        Error: ENOENT, no such file or directory '/Users/Robert/ui/tmp/class-tests_dist-hqZLfsWS.tmp/app/components'
            at Object.fs.statSync (fs.js:684:18)
            at InstrumentCommand.Command.mix.run (/usr/local/lib/node_modules/istanbul/lib/command/instrument.js:230:20)
            at runCommand (/usr/local/lib/node_modules/istanbul/lib/cli.js:58:19)
            at runToCompletion (/usr/local/lib/node_modules/istanbul/lib/cli.js:62:5)
            at Object.<anonymous> (/usr/local/lib/node_modules/istanbul/lib/cli.js:67:5)
            at Module._compile (module.js:456:26)
            at Object.Module._extensions..js (module.js:474:10)
            at Module.load (module.js:356:32)
            at Function.Module._load (module.js:312:12)
            at Function.Module.runMain (module.js:497:10)
Run Code Online (Sandbox Code Playgroud)

我也试过使用Karma,但我无法弄清楚配置.我也试过毯子,但这只是给了我一个虚假的报告,100%覆盖在已编译的代码上.

我不完全理解转换后的代码是如何工作的,我不确定最好的方法是什么,但我肯定会喜欢任何帮助,指出我如何获得一个很好的代码覆盖率报告的正确方向.

有没有人成功整合任何类型的代码覆盖率报告?

qunit ember.js testem ember-cli broccolijs

17
推荐指数
1
解决办法
2134
查看次数

在ember cli中上传文件的验收测试

我想在上传文件的ember中创建一个基本的验收测试.我可以使用Pretender模拟服务器,但我需要知道如何input type="file"使用文件系统中的文件填充字段.所以问题基本上是:

  1. 如何使用ember测试助手填充输入文件字段,我是否使用fillIn帮助器?
  2. 如何将示例文件添加到文件夹并从验收测试中获取它们.是否有可能从验收测试中获取我的Ember项目的当前路径,以从要上载的文件系统中选择文件?在Rails中,我们将其Rails.root用于此目的.

integration-testing qunit ember.js ember-cli ember-qunit

17
推荐指数
1
解决办法
1667
查看次数

前端的BDD框架?

在服务器端,我们有用于BDD开发的Rspec/Cucumber(ruby)vowsjs(node.js)

是否有在Web浏览器上使用的BDD框架(不是qUnit或YUI测试,因为这些只适用于TDD)?

javascript tdd bdd yui qunit

16
推荐指数
5
解决办法
1万
查看次数

编写"单元可测试"的jQuery代码?

直到现在我还习惯在ready()函数中编写我的所有代码,如:

$(document).ready(function() {
  // all my code
});
Run Code Online (Sandbox Code Playgroud)

现在我看到使用这种方法,我的代码不是"单元可测试的",例如我无法从QUnit访问ready()内的东西.

构造与使用ready()函数兼容且能够进行测试的jQuery代码的正确方法是什么?

是否有一个良好的开源代码库或项目来学习和学习?

javascript jquery unit-testing qunit

16
推荐指数
2
解决办法
1623
查看次数

如何将ASP.NET MVC 3页面的HTML转换为QUnit测试?

我已经开始使用QUnit来测试ASP.NET MVC3应用程序中某个页面的jQuery代码.到目前为止,我已经提供了一个HTML-mock,它正在测试的javascript文件中使用.是否可以让它引用应用程序使用的页面的实际HTML?

asp.net-mvc jquery unit-testing qunit asp.net-mvc-3

16
推荐指数
1
解决办法
1056
查看次数