Questions tagged «jasmine»

Jasmine是一个行为驱动的开发(BDD)框架,用于测试JavaScript代码。Jasmine没有外部依赖关系,并且不需要DOM。

4
是否有茉莉花匹配器来比较对象的属性子集
我有一个对象可以沿我的测试行为扩展,但是我想确保原始属性仍然存在。 var example = {'foo':'bar', 'bar':'baz'} var result = extendingPipeline(example) // {'foo':'bar', 'bar':'baz', 'extension': Function} expect(result).toEqual(example) //fails miserably 我想要一个匹配器,在这种情况下可以通过: expect(result).toInclude(example) 我知道我可以编写一个自定义匹配器,但是在我看来,这是一个普遍的问题,应该已经有解决方案了。我应该在哪里寻找?

5
Angular中的单元测试点击事件
我正在尝试将单元测试添加到Angular 2应用程序中。在我的一个组件中,有一个带有(click)处理程序的按钮。当用户单击按钮时,将调用一个在.ts类文件中定义的函数。该函数在console.log窗口中打印一条消息,表明已按下该按钮。我当前的测试代码对console.log消息的打印进行了测试: describe('Component: ComponentToBeTested', () => { var component: ComponentToBeTested; beforeEach(() => { component = new ComponentToBeTested(); spyOn(console, 'log'); }); it('should call onEditButtonClick() and print console.log', () => { component.onEditButtonClick(); expect(console.log).toHaveBeenCalledWith('Edit button has been clicked!); }); }); 但是,这仅测试控制器类,而不测试HTML。我不仅要测试onEditButtonClick调用时是否发生日志记录,还需要进行测试。我还想测试onEditButtonClick用户单击组件的HTML文件中定义的编辑按钮时调用的方法。我怎样才能做到这一点?

3
Jest中describe和it有什么区别?
在编写单元测试时Jest或Jasmine何时使用describe? 您it什么时候使用? 我通常会 describe('my beverage', () => { test('is delicious', () => { }); }); 什么时候来新的describe或新的it?
79 jasmine  jestjs 

2
对具有依赖项的AngularJS工厂进行单元测试
在对Angular工厂进行单元测试(使用Karma + Jasmine)时,如何将存根依赖项注入到要测试的工厂中? 这是我的工厂: mod = angular.module('myFactoryMod', []); mod.factory('myFactory', [ '$log', 'oneOfMyOtherServices', function($log, svc) { return makeSomethingThatDoesSomethingWithTheseDependencies($log, svc); } ]); oneOfMyOtherServices 实例化我的工厂时需要。 这是我的测试: it('can get an instance of my factory', function() { var oneOfMyOtherServicesStub; angular.mock.module('myFactoryMod'); oneOfMyOtherServicesStub = { someVariable: 1 }; //****How do I get my stub in my target? …

9
量角器:单击按钮后如何等待页面完成?
在测试规范中,我需要单击网页上的按钮,然后等待新页面完全加载。 emailEl.sendKeys('jack'); passwordEl.sendKeys('123pwd'); btnLoginEl.click(); // ...Here need to wait for page complete... How? ptor.waitForAngular(); expect(ptor.getCurrentUrl()).toEqual(url + 'abc#/efg');


1
_servicename_中的下划线在AngularJS测试中意味着什么?
在下面的示例测试中,原始提供程序名称为APIEndpointProvider,但是对于注入和服务实例化,似乎必须使用下划线将其注入。这是为什么? 'use strict'; describe('Provider: APIEndpointProvider', function () { beforeEach(module('myApp.providers')); var APIEndpointProvider; beforeEach(inject(function(_APIEndpointProvider_) { APIEndpointProvider = _APIEndpointProvider_; })); it('should do something', function () { expect(!!APIEndpointProvider).toBe(true); }); }); 我缺少更好的解释的约定是什么?


9
在私人方法上使用茉莉花
是否可以在类私有方法上使用Jasmine单元测试框架的spyon方法? 文档提供了此示例,但是对于私有功能可以灵活使用吗? describe("Person", function() { it("calls the sayHello() function", function() { var fakePerson = new Person(); spyOn(fakePerson, "sayHello"); fakePerson.helloSomeone("world"); expect(fakePerson.sayHello).toHaveBeenCalled(); }); });

2
Jasmine vs. Mocha Rails 3.1+的JavaScript测试[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 我有茉莉花的经验,并且相当喜欢它。有没有人有过Jasmine和Mocha的使用经验,尤其是Rails?我想知道是否值得切换。

4
Angular2测试:ComponentFixture中的DebugElement和NativeElement对象之间有什么区别?
我目前正在汇总一些最佳实践,以在组件级别上测试Angular 2应用程序。 我看过一些教程,查询灯具的NativeElement对象以获取选择器等,例如 it('should render "Hello World!" after click', async(() => { builder.createAsync(HelloWorld).then((fixture: ComponentFixture<HelloWorld>) => { fixture.detectChanges(); let el = fixture.nativeElement; el.querySelector('h1').click(); fixture.detectChanges(); expect(el.querySelector('h1')).toHaveText('Hello World!'); }); })); 运行代码段隐藏结果展开摘要 但是,在juliemr的Angular 2测试种子中,她通过父DebugElement对象访问NativeElement。 it('should render "Hello World!" after click', async(() => { builder.createAsync(HelloWorld).then((fixture: ComponentFixture<HelloWorld>) => { fixture.detectChanges(); let compiled = fixture.debugElement.nativeElement; compiled.querySelector('h1').click(); fixture.detectChanges(); …


6
是否存在忽略jest.js中元素位置的数组相等匹配函数?
我得到.toEqual()检查普通对象的所有字段的相等性: expect( {"key1":"pink wool","key2":"diorite"} ).toEqual( {"key2":"diorite","key1":"pink wool"} ); 这样就过去了。 但是对于数组却不是这样: expect(["pink wool", "diorite"]).toEqual(["diorite", "pink wool"]); 在jest docs中似乎没有匹配器函数可以执行此操作,即,不管两个数组的元素位置如何,它都测试两个数组是否相等。我是否必须将一个数组中的每个元素与另一个数组中的所有元素进行测试,反之亦然?还是有另一种方法?
72 jasmine  jestjs 

3
在Jasmine单元测试中模拟AngularJS模块依赖性
我正在尝试在将其他模块作为依赖项的模块中进行单元测试控制器代码的单元化,但是还无法弄清楚如何正确模拟它们。 我正在使用Jasmine Framework,并使用Karma(Testacular)运行测试。 模块代码 var app = angular.module('events', ['af.widgets', 'angular-table']); app.controller('eventsCtrl', function([dependencies]){ $scope.events = []; ... }); 规格代码 describe('events module', function(){ var $scope, ctrl; beforeEach(function(){ angular.mock.module('af.widgets', []); angular.mock.module('angular-table', []); module('events', ['af.widgets', 'angular-table']); }); beforeEach(inject(function($rootScope, $controller){ $scope = $rootScope.new(); ctrl = $controller('NameCtrl', { $scope: $scope, }); })); it('should have an empty …

9
在JavaScript中模拟window.location.href
我对使用window.location.href的函数进行了一些单元测试-不理想,我宁愿将其传递给它,但在实现中是不可能的。我只是想知道是否有可能在不实际导致测试运行器页面实际转到URL的情况下模拟该值。 window.location.href = "http://www.website.com?varName=foo"; expect(actions.paramToVar(test_Data)).toEqual("bar"); 我将茉莉花用于我的单元测试框架。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.