草庐IT

jest-jasmine

全部标签

javascript - 使用 jest 15.1.1 的代码覆盖率 "Unknown"

当我尝试包含所有项目源代码以获得更合理的代码覆盖率数字时,我最终得到了----------|----------|----------|----------|----------|----------------|File|%Stmts|%Branch|%Funcs|%Lines|UncoveredLines|----------|----------|----------|----------|----------|----------------|Allfiles|Unknown|Unknown|Unknown|Unknown||----------|----------|----

javascript - 如何为包含来自另一个类/文件的全局变量的方法编写 Jasmine 测试?

我的测试失败的原因如下:ReferenceError:Can'tfindvariable:moving_canvas_contextinfile(line5)我了解测试失败的原因。它不理解该变量,因为它是在单独的JavaScript文件中定义的。但是,它是全局声明的并且在现实中有效。如何为这个clear_canvas函数编写jasmine测试?JavaScriptCanvas_Actions:(function(){window.Canvas_Actions=(function(){functionCanvas_Actions(){}Canvas_Actions.prototype.c

javascript - Jest - 在一个测试套件中多次测试模块

我有一个TypeScript模块(应该是无关紧要的,因为我认为这也会影响JS)并且我正在尝试测试我拥有的一个模块。该模块从外部文件中导入大量数据,并根据a变量选择应返回哪些数据。我正在尝试运行一些测试,更新该变量,重新require模块并在一个文件中运行进一步的测试。但我的问题是文件的require只运行一次。我猜它正在被缓存。是否可以告诉Jest的require函数不缓存或清除测试之间的缓存?这里是我想要实现的一些精简代码:模块.tsimport{getLanguage}from"utils/functions";import*asmessagesEnfrom"resources/t

javascript - 使用 jest.mock 传递超出范围的变量

我有一个模拟对象,我用它来模拟react-native:constMyMock={MockA:{methodA:jest.genMockFn()},MockB:{ObjectB:{methodA:jest.genMockFn(),methodB:jest.genMockFn(),}}};jest.mock('react-native',()=>{returnMyMock;});我在jest.mock之外声明对象,因为我稍后在测试中也需要它:describe('MyClass',()=>{beforeEach(()=>{MyMock.MockB.ObjectB.methodA.mockC

javascript - 如何通过 Jasmine spy 将被拒绝/失败的 promise 返回到单元测试中的 Angular Controller

我正在使用jasmine来测试我的AngularController。我在.then(successCallback,errorCallback)中捕获错误和成功虽然它在实时功能的基础上运行良好,但我很困惑如何编写一个spy来返回错误,因为它总是在successCallback()中被捕获以下是Controller:-angular.module('myApp').controller('LoginCtrl',function($scope,$location,loginService,SessionService){$scope.errorMessage='';$scope.logi

javascript - jasmine.clock().tick() 不适用于 $timeout 和 debounce,但适用于 setTimeout

下面我有3个功能完全相同。每种调用setTimeout的方式不同,delay1()直接使用setTimeout,delay2()使用angularjs$timeout和delay3()使用lodashdebounce。它们都工作正常。问题出现在我用Jasmine测试的时候。setTimeout可以与jasmine.clock().tick()方法配合使用,但$timeout和debounce不适用't我有兴趣使用Jasmine进行去抖动。我知道我可以将$timeout.flush()与angularjs一起使用,但是$timeout和setTimeout在我使用的代码的其他地方给我带来

javascript - 使用 Jest 时防止 "test/expect/etc is not defined"错误

Facebook的Jest测试框架很容易getstartedwith,butthedocumentation俯瞰一个annoyingaspect:任何试图警告undefinedsymbol的编辑器都会将测试语句突出显示为错误,因为未定义test、expect和所有匹配器方法。同样,尝试直接使用node运行测试文件将失败并显示ReferenceError:testisnotdefined。需要添加哪些require/import语句才能消除这些错误? 最佳答案 节点如果您想直接通过节点运行它们,请尝试要求jest和/或jest-run

JavaScript 标准样式无法识别 jest

我需要设置jest和JavaScriptStandardStyle在使用npmtest时协同工作。现在,当我运行npmtest时,测试失败了,因为JavaScript标准样式抛出了一个错误:'test'isnotdefined.'expect'isnotdefined.我可以通过在我的package.json文件中定义一些globalforjest来解决这个问题。"standard":{"globals":["fetch","test","expect"]}但我绝对不认为这是一个好的解决方案。在我的测试用例sum.test.js中constsum=require('./sum')tes

javascript - 将 $stateParams 和 $state 注入(inject) Jasmine Angular js 测试变得未定义

我正在为我的DetailCtrl编写jasmine测试。我有10个json文件,每个文件的文件名都是这样1.json2.json3.json在我的数据文件夹中这是我的详细控制backpagecontrollers.controller('DetailCtrl',function($scope,$stateParams,$http){$http.get('data/'+$stateParams.listingId+'.json').success(function(data){$scope.extrainfo=data;});});细节Controller正在从我的数据文件夹中获取每个1

javascript - Jest 报道,所有值为零

我在我的项目中引入了代码覆盖率,但所有值(除了一个)都停留在零。这是我的jest-config.json:{"collectCoverageFrom":["../shared/utils/*.js"],"coverageDirectory":"/coverage","coverageThreshold":{"global":{"branches":0,"functions":0,"lines":0,"statements":0}},"moduleFileExtensions":["js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-o