标签: qunit

QUnit vs Jasmine?

这两个测试框架之间的主要区别是什么?

我从一开始就是测试驱动开发的新手.

tdd unit-testing qunit jasmine

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

在持续集成构建中无头地运行JavaScript单元测试

我有一个在持续集成系统(Atlassian Bamboo 2.5)上运行的webapp构建计划.我需要将基于QUnit的JavaScript单元测试合并到构建计划中,以便在每个构建时运行Javascript测试,Bamboo将解释测试结果.

我希望能够使构建过程"独立",以便不需要与外部服务器的连接.如何实现这一目标的好主意?运行构建过程的CI系统位于Ubuntu Linux服务器上.

javascript continuous-integration unit-testing qunit bamboo

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

您使用过哪些JavaScript单元测试和模拟框架?

我的主要JavaScript框架是jQuery,所以我希望我的单元测试和模拟框架与之兼容.我宁愿不必介绍另一个JavaScript框架.

我目前正在使用QUnit进行单元测试,使用Jack进行模拟,但我对JavaScript的整个单元测试都很陌生.

有没有其他人有更好的建议工具?什么对你有用?

javascript jquery unit-testing mocking qunit

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

未捕获错误:断言失败:在被破坏的对象上调用set

在ember-cli测试中工作.在所有测试通过后,它返回额外的两个错误测试.

未捕获的错误:断言失败:在被破坏的对象上调用set源:'../dist/assets/vendor.js:13269'

这是一个单元测试配置

import Ember from "ember";
import { test,moduleFor } from 'ember-qunit';
import startApp from '../helpers/start-app';

var App;

module('An Integration test',{
    setup:function(){
        App=startApp();
    },
    teardown: function() {
        Ember.run(App, 'destroy');
    }
});
Run Code Online (Sandbox Code Playgroud)

qunit ember.js ember-cli

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

Qunit参数化测试和模拟

我有两个问题:

你能在qunit中进行参数化单元测试吗?

你怎么用qunit嘲笑,比如嘲笑一个getJSON电话?

谢谢

javascript qunit

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

在Javascript中覆盖等价比较

是否可以在Javascript中覆盖等价比较?

我得到的最接近的解决方案是定义valueOf函数并在对象前面用一个加号调用valueOf.

这有效.

equal(+x == +y, true);
Run Code Online (Sandbox Code Playgroud)

但这失败了.

equal(x == y, true, "why does this fail.");
Run Code Online (Sandbox Code Playgroud)

这是我的测试用例.

var Obj = function (val) {
    this.value = val;
};
Obj.prototype.toString = function () {
    return this.value;
};
Obj.prototype.valueOf = function () {
    return this.value;
};
var x = new Obj(42);
var y = new Obj(42);
var z = new Obj(10);
test("Comparing custom objects", function () {
    equal(x >= y, true);
    equal(x <= y, true);
    equal(x >= z, true);
    equal(y >= z, true); …
Run Code Online (Sandbox Code Playgroud)

javascript operator-overloading qunit

34
推荐指数
3
解决办法
3万
查看次数

测试操纵DOM的Javascript

我一直在研究javascript测试套件,我发现QUnit非常有趣.我理解如何测试计算代码,但......

你如何测试主要用于DOM操作的javascript应用程序?

似乎测试DOM元素的位置/颜色/等是一个没有实际意义的点,因为你最终会像这样做一些东西:

$("li.my_element").css("background-color", "#f00");
Run Code Online (Sandbox Code Playgroud)

然后在你的测试中......

$(function() {
    module("coloring");
    test("test_my_element", function() {
        var li_element_color = $("li.my_element").css('background-color');
        equals(li_element_color, "#f00");
    });
});
Run Code Online (Sandbox Code Playgroud)

这只是感觉不对,因为它基本上只是这样做:

var my_li= $("li.my_element");
my_li.css("background-color", "#f00");
if ( my_li.css("background-color") == "#f00" ) {
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我疯了吗?应该怎么做?

编辑:问题的核心:

我想我得到的是,我需要确保在部署之前代码没有被破坏,但绝大多数是UI助手和ajax.如何测试事物是否正确显示?

几个例子:

  • 测试JQuery UI对话框是否出现在所有其他元素之上
  • 测试拖拽是否正常工作
  • 测试droppable的颜色在元素掉落时会发生变化
  • 测试ajax是否都正常工作
  • 测试没有无关的逗号会破坏IE

javascript jquery dom unit-testing qunit

32
推荐指数
2
解决办法
5752
查看次数

QUnit只运行第一次测试

在第一次测试之后,我无法让QUnit运行任何测试.为了确保我没有做一些奇怪的事情,我把代码削减到尽可能基本.

test("A", function () {
    ok(true, "Test A");
});
test("B", function () {
    ok(true, "Test B");
});
Run Code Online (Sandbox Code Playgroud)

测试A是唯一运行的.没有抛出任何错误或其他任何错误.

我的HTML文件看起来像这样.

<!DOCTYPE html>
<html>
<head>
   <title>Test title</title>
   <link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.10.0.css">
</head>
<body>
   <div id="qunit"></div>
   <script src="http://code.jquery.com/qunit/qunit-1.10.0.js"></script>
   <script src="tests.js" type="text/javascript"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

unit-testing qunit

28
推荐指数
1
解决办法
2020
查看次数

QUnit Vs. Jasmine和TDD比.BDD

我一直在寻找两个用于在前端进行单元测试的库.

  • QUnit - http://qunitjs.com/

  • Jasmine - http://jasmine.github.io/

    1. 茉莉显然更BDD的重点不是QUnit虽然我可以看到做BDD QUnit通过描述一个行为导向的方式测试.它们都能够在代码单元上运行断言,所以我认为它们都是单元测试.BDD是否与TDD相互排斥,或者您是如何编写它的?

    2. 如果您正在进行行为测试,是否需要进行单元测试?似乎如果你涵盖所有用户故事,你真的不需要知道可测试单元的细节.

    3. 你还喜欢其他任何测试框架吗?除了单元测试之外是否还有其他测试可以让开发人员在前端做什么?

javascript tdd bdd qunit jasmine

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

如何使用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万
查看次数