这两个测试框架之间的主要区别是什么?
我从一开始就是测试驱动开发的新手.
我有一个在持续集成系统(Atlassian Bamboo 2.5)上运行的webapp构建计划.我需要将基于QUnit的JavaScript单元测试合并到构建计划中,以便在每个构建时运行Javascript测试,Bamboo将解释测试结果.
我希望能够使构建过程"独立",以便不需要与外部服务器的连接.如何实现这一目标的好主意?运行构建过程的CI系统位于Ubuntu Linux服务器上.
在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中进行参数化单元测试吗?
你怎么用qunit嘲笑,比如嘲笑一个getJSON电话?
谢谢
是否可以在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测试套件,我发现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.如何测试事物是否正确显示?
几个例子:
在第一次测试之后,我无法让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) 我一直在寻找两个用于在前端进行单元测试的库.
QUnit - http://qunitjs.com/
Jasmine - http://jasmine.github.io/
茉莉显然更BDD的重点不是QUnit虽然我可以看到做BDD QUnit通过描述一个行为导向的方式测试.它们都能够在代码单元上运行断言,所以我认为它们都是单元测试.BDD是否与TDD相互排斥,或者您是如何编写它的?
如果您正在进行行为测试,是否需要进行单元测试?似乎如果你涵盖所有用户故事,你真的不需要知道可测试单元的细节.
你还喜欢其他任何测试框架吗?除了单元测试之外是否还有其他测试可以让开发人员在前端做什么?
我正在使用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在哪里?
qunit ×10
javascript ×7
unit-testing ×6
tdd ×3
jasmine ×2
jquery ×2
bamboo ×1
bdd ×1
dom ×1
ember-cli ×1
ember.js ×1
karma-runner ×1
mocking ×1