我有一个订阅了未被捕获的错误事件的对象,我正在尝试测试它的行为.首先我尝试使用jasmine-node,但现在当我尝试使用茉莉花时,我发现了麻烦.任何人都可以帮助我.describe('Constructor tests', function () {it('error is passed to the callback', function (done) {const error = new Error("testError-0");let errorHandler = new AllErrorHandler((arg1) => {expect(arg1).toBe(error);errorHandler.dispose();done();});setTime...
我认为这个问题大部分都是如此.我有一个由maven / jasmine插件创建的自动生成的ManualSpecRunner.html文件,我已经通过使用它将自己置于可部署的.war中:<jasmineTargetDir>${basedir}/pathForMyWebapp</jasmineTargetDir>但是,ManualSpecRunner.html中js文件的所有链接都是硬编码文件:///引用 – 这有点精神,我希望它们只是webapp中文件的相对路径,即 目前它给了我这条道路:file:///home/username/code/HEAD/pathForMyWebapp/js/...
我正在尝试使用jasmine和requirejs测试需要模块的函数.这是一个虚拟代码:define("testModule", function() {return 123; }); var test = function() {require(['testModule'], function(testModule) {return testModule + 1;}); } describe("Async requirejs test", function() {it("should works", function() {expect(test()).toBe(124);}); });它失败了,因为它是一个异步方法.我该如何用它进行测试? 注意:我不想更改我的代码...
我有一个茉莉花测试,我有2个输入字段.我专注于第一个输入,然后在’tab’键上模拟keydown,并期望焦点在第二个输入上.不幸的是,这种情况并非如此.焦点不会从第一次改变,我的测试失败.如何解决这个失败的测试? 我试图测试的小提琴:http://jsfiddle.net/G2Qz3/1/ 失败的茉莉花测试的小提琴:http://jsfiddle.net/mFUhK/4/ HTML:<input id="first"></input> <input id="second"></input>JavaScript的:function simulateTab() {var T...
我这里有一个严肃的问题.我的应用程序依赖于SignalR功能,但由于这一点,我无法编写单元测试.我是测试框架的新手,仅在简单的情况下使用Jasmine.事实证明SignalR对我来说是一个太大的挑战,但我需要了解如何成功测试它.这是我的CommsApp.ts文件[typescript]:/// <reference path="References.ts" /> var commsAnimationsModule = angular.module('forge.communications.animations', ['ngAnimate']); var commsDirectivesModule = ang...
我正在对Angular控制器进行单元测试,该控制器使用Rails Resource工厂来处理来自Rails应用程序的GETing和POSTing模型数据. POST通过模型上的方法完成,例如(使用模型$scope.resource):$scope.resource.update().then(successHandler, failureHandler);我有一个间谍在这个方法来存根Ajax调用,所以我可以单元测试控制器:resUpdateSpy = spyOn($scope.resource, 'update').and.callFake(function() { return {then: function(success,...
当我运行SpecRunner.html时,我收到以下错误ReferenceError: module is not defined我的控制器是angular.module('mymodule', []).controller('mycontroller', ['$scope',function($scope) {$scope.employees = [{name: 'Dick',address: 'Mumbai'}, {name: 'Tom',address: 'US'}];$scope.addEmployee = function() {$scope.employees.push({name: $scope.name,address: $scope.address});}}]) 我的规格是describe('Employee', functi...
我正在尝试为Jasmine编写一个插件,允许您从规范中返回一个承诺,并根据承诺是否已履行或拒绝而通过或失败该规范. 当然,我想编写测试以确保我的插件正常工作,并且要彻底,我需要确保在拒绝承诺时测试失败…所以当我需要时如何进行测试通过确保测试“成功失败”?解决方法:在与使用Jasmine的开发人员交谈后,我们想出了这个:var FAILED = 'failed' var PASSED = 'passed'describe('My Test Suite', function () {var envbeforeEach(fun...
在我的测试中,有很多期待.但其中一些可能不够严重,不能停止测试.我可以暂时忽略错误并在测试结束时抛出它们吗?解决方法:茉莉花的期望在默认情况下有点“软”.从某种意义上说,测试在失败后继续执行. 换句话说,如果您有以下代码:expect(true).toBe(false); expect(false).toBe(true);你会得到一个测试失败的2个未满足的期望. 一个常见的问题与你所要求的完全相反 – 如何关闭行为以便茉莉花在第一次预期失败后失败 – 这现在由stop...
对流星,速度和茉莉很新,所以不确定我是否做错了什么,使用Jasmine作为它不适合的东西,或者这只是它的工作方式. 我发现我需要为我的所有测试设置超时,以便让它们通过.应该是这种情况还是我做错了什么? 例如,我正在运行的一些测试来检查验证消息:describe("add quote validation", function() {beforeEach(function (done) {Router.go('addQuote');Tracker.afterFlush(function(){done();});});beforeEach(waitForRouter);it("shoul...
我在node.js服务器中有一个方法,它返回一个Promise – 抛出一个自定义异常(UserNotAuthenticatedError) – 我想编写一个测试来确保在必要时抛出此异常. 方法如下:export function changePassword(userId, oldPass, newPass) {var query = User.findById(userId);return query.exec().then(user => {if (user.authenticate(oldPass)) {user.password = newPass;return user.save();} else {// I want to test that this Exception...
由于–experimental-modules CLI开关(即节点–experimental-modules),我的基于节点的项目是使用节点上的本机ES模块支持实现的. 显然,当我使用Jasmine节点–experimental-modules ./node_modules/jasmine/bin/jasmine运行规范时,我收到以下错误:Error [ERR_REQUIRE_ESM]: Must use import to load ES Module在Node中使用ES模块是否可以使用Jasmine? 如果没有,是否有任何替代方法不使用框架(例如,使用npm脚本运行测试)?解决方法:这...
Jasmine是以BDD方式对javascript代码进行单元测试的最广泛使用的测试框架之一.我试图将它用于AngularJS组件测试. AngularJS文档提供以下示例代码describe('PasswordController', function() {beforeEach(module('app'));var $controller;beforeEach(inject(function(_$controller_){$controller = _$controller_;}));describe('$scope.grade', function() {it('sets the strength to "strong" if the password length is >8 chars'...
这很奇怪.使用带有jasmine2的testem runner和以下规范执行(虽然它正确地标记了没有期望):describe('Spying on array.prototype methods', function(){it('should work this way', function(){spyOn( Array.prototype, 'push' ).and.callThrough();// expect(1).toBe(1);}); });但是,添加一个expect(任何期望!)并且它会导致堆栈溢出,并在testem控制台中显示以下消息:RangeError:超出最大调用堆栈大小.在http:// localhost:735...
我正在尝试使用Karma Jasmine测试AngularJS自定义指令.我找到了一种方法来检查网络上的许多参考文献.但解决方案似乎不是正确的方法.我们先来看一个例子,这是test.js:angular.module("app", []).directive("test", function() {return {restrict: 'E',scope: {defined: '='},templateFile: "test.html",controller: function($scope) {$scope.isDefined = function() {return $scope.defined;};}};});describe("Test directive", f...