通过NPM安装:npm install nodeunit -g支持命令行,浏览器运行. 各种断言。 在node.js下模块化对于方法导出exports, 如果是对象导出module.exports,模块儿是单元测试的基础,看下面的node.js代码: var fs = require(fs), global=require(./global.js); var utils = { startWith: function(s1, s) { if (s == null || s == "" || this.length == 0 || s.length > this.length) return false; if (s1.substr(0, s.length) == s) r...
一、什么是 QUnit QUnit(http://qunitjs.com/) 是一个非常强大的javascript单元测试框架,可以帮你调试代码。它是由 jQuery 团队的成员写的,而且是 jQuery 的官方测试套装。但QUnit一般是足以测试任何常规 javascript 代码,它甚至可能通过一些 javascript 引擎比如 Rhino 或 V8 来测试服务器端 JavaScript。如果你不熟悉“单元测试”的概念,请不要担心。这不是很难理解的:代码如下:在计算机编程中,单元测试(又称为模块测试...
前言 当前,在软件开发中单元测试越来越受到开发者的重视,它能提高软件的开发效率,而且能保障开发的质量。以往,单元测试往往多见于服务端的开发中,但随着Web编程领域的分工逐渐明细,在前端Javascript开发领域中,也可以进行相关的单元测试,以保障前端开发的质量。 在服务器端的单元测试中,都有各种各样的测试框架,在JavaScript中现在也有一些很优秀的框架,但在本文中,我们将自己动手一步步来实现一个简单的单元测试...
代码如下:(function () { var KMock = window.KMock = function () { } KMock.prototype.setup = function (methodName) { var instance = this; instance[methodName] = { returnAs: function (fn) { instance["_" + methodName] = function () { instance[methodName].invokeNum++; fn.call(); } }, isVerify: function (exceptNum) { if (exceptNum != null) { return exceptNum == instance[methodName].invokeNum; } else { r...
http://github.com/alexyoung/riotjs示例: Ruby代码 代码如下:context "a new user" do setup { User.new } asserts("that it is not yet created") { topic.new_record? } end context "a new user" do setup { User.new } asserts("that it is not yet created") { topic.new_record? } end Javascript代码 代码如下:Riot.run(function() { context(basic riot functionality, function() { given(some simple equality test...
我想问一下我是否能够对document.ready中的ExternalFunction内部的代码进行单元测试?我已经尝试了很多时间了,但仍然无法解决问题,并且处于机智.$(document).ready(function () {var originalExternalFunction = ExternalFunction;ExternalFunction = function(context, param) {// trying to unit test the stuff in here!} }我正在使用JsTestDriver进行单元测试.测试声明类似于TestThisTest.prototype.test_this-function(){}; 提...
我对javascript相当陌生,正在尝试使用jasmine对一些错误处理代码进行单元测试. 特别是,我正在尝试编写一些测试,以验证是否调用了替换window.onerror()的自定义代码(称为windowHandleError),并且正在执行我们想要的操作. 我已经尝试了以下方法:it("testing window.onerror", function() {spyOn(globalerror, 'windowHandleError');globalerror.install();var someFunction = function() {undefinedFunction();};expect(function() ...
使用这个:DEBUG: ------------------------------- DEBUG: Ember : 1.5.1 DEBUG: Ember Data : 1.0.0-beta.7.f87cba88 DEBUG: Handlebars : 1.3.0 DEBUG: jQuery : 1.10.2 DEBUG: -------------------------------并使用Ember-qunit进行测试. 因此,我正在尝试为模型上的计算属性编写单元测试.计算的属性取决于hasMany关系中的数据. 所以我的模型看起来像这样:App.User = DS.Model.extend({name: DS.attr('string'),role...
我对测试还很陌生,所以这个问题是关于最佳实践以及该测试应该如何编写的.我正在将Karma与Mocha和Chai一起测试Angular.js应用. 我目前正在测试一个函数,该函数计算以特定顺序排列字母组合的方式的数量.它遵循一种模式来从辅音组或元音组中提取字母. 这些是我目前的测试:describe("should count the number of combinations correctly", function() {describe("with 2-item arrays", function() {beforeEach(function(){scope.vowel...
我在要使用“&”的指令行中收到SyntaxError:解析错误.与父指令的方法进行单向绑定myApp.directive('datasourceDeleteBtn', [function() { return {restrict: 'E',replace: true,template: '<a href="#">✕</a>',scope: {datasourceIndex: '@',removeParentDiv: '&'},link: link };function link(scope, element, attr) {element.bind('click', function(event) {event.preventDefault();scope.deleteDatasource(scope.dataso...
我的问题是关于在Node.js中使用promise和事件发射器进行单元测试.如果重要的话,我正在使用茉莉花框架. 下面的代码使用Node.js的https模块将请求发送到API.该API将返回JSON.来自API的JSON是以下代码中的“ rawData”变量. 我想对该功能返回JSON(而不是JavaScript对象)进行单元测试. 我已经尝试了几种方法来对该功能的这一方面进行单元测试: 1)我尝试监视Promise构造函数,以使其返回假函数,该函数仅返回JSON字符串. 2)我尝试监视Nod...
我得到了类似以下代码行的内容:jQuery('.js-img-input').on('change', handleNewFiles); var handleNewFiles = function(event) {var fileList = event.target.files;loadFileList(fileList); };var loadFileList = function(fileList) {jQuery(fileList).each(function(key, file) {readFileAsync(file);}); }var readFileAsync = function(file) {var fileReader = new FileReader();fileReader.addEventListener("load", fun...
情况:我刚刚开始学习对JavaScript代码进行单元测试,我想知道是否有一种方法可以伪造应用程序的行为以测试某些情况.我读过有关sinon.js spy / stub / mock的文章.但是,与JS一样,还有很多其他脚本和组合(例如,与摩卡,柴,业力茉莉花),我希望有人能告诉我最佳实践. 让我们举个例子:如果我想在测试运行程序中测试一个函数,该函数会根据窗口大小更改背景大小,那么触发不同的窗口大小(而不是元素大小)会很复杂,以便查看在多个窗口中进行...
我正在测试一个回调函数,该函数接受一个响应对象作为唯一参数.该对象是在其他地方发出的HTTP请求的响应,因此我不想在此测试中使用$httpBackend,因为该请求与该功能无关. 在home.js中,它是我应用程序主页的控制器. 这是正在测试的功能:function submitLogin() {LoginService.login(loginPost, ctrl.username, ctrl.password, successCallback, errorCallback);}// gets called in LoginService if login reponse is 201, otherwise...
我无法让我的单元测试正常工作.我有一个$scope数组,它开始是空的,但应该用$http.get()填充.在真实的环境中,阵列中大约有15个左右的对象,但是对于我的单元测试,我只抓了2.对于单元测试,我有:expect($scope.stuff.length).toBe(2);但茉莉的错误是:预期0为2. 这是我的controller.js:$scope.stuff = []; $scope.getStuff = function () {var url = site.root + 'api/stuff';$http.get(url).success(function (data) {$scope.stuff =...