相关疑难解决方法(0)

如何测试Jasmine中的值是"大于或等于"?

我想确认一个值是十进制(或0),因此该数字应大于或等于零小于1.

describe('percent',function(){  

  it('should be a decimal', function() {

    var percent = insights.percent; 
    expect(percent).toBeGreaterThan(0);
    expect(percent).toBeLessThan(1);

  });

});
Run Code Online (Sandbox Code Playgroud)

我如何模仿"> = 0"?

javascript tdd jasmine

85
推荐指数
6
解决办法
6万
查看次数

定制茉莉花匹配器和量角器

我们添加了一个toHaveClass 自定义的茉莉花匹配器,为了使其工作,我们不得不将其添加到beforeEach()(在本主题的帮助下).

并且,为了遵循DRY原则并避免在需要的每个beforeEach()规范中重复匹配器定义toHaveClass,我们在以下位置添加了一个beforeEach()onPrepare():

onPrepare: function () {
    var jasmineReporters = require("jasmine-reporters");
    require("jasmine-expect");

    // ...

    // custom matchers
    beforeEach(function() {
        jasmine.addMatchers({
            toHaveClass: function() {
                return {
                    compare: function(actual, expected) {
                        return {
                            pass: actual.getAttribute("class").then(function(classes) {
                                return classes.split(" ").indexOf(expected) !== -1;
                            })
                        };
                    }
                };
            }
        });
    });
},
Run Code Online (Sandbox Code Playgroud)

它实际上是有效的,但是每当我看到beforeEach()量角器配置中的块时,我就会有一种微观凹陷和强烈的感觉,它不是定义匹配器的好地方.

问题:

是否有更好的方法或地点来定义自定义匹配器?

javascript testing jasmine angularjs protractor

14
推荐指数
1
解决办法
1908
查看次数

使用Typescript创建自定义茉莉花匹配器

我在angular2项目中使用jasmine,并且在编写自定义匹配器时遇到一些麻烦.我希望能够比较两个相对复杂的对象.我发现这篇文章声称可以解决这个问题,但它只会导致一个打字稿错误,说明它无法识别jasmine Matchers对象上的新方法.相关代码是这样的:

declare module jasmine {
    interface Matchers {
        toBeNumeric(): void;
    }
}
Run Code Online (Sandbox Code Playgroud)

另一篇文章给出了一个类似但略有不同的解决方案,它给出了同样的错

declare namespace jasmine {
    interface Matchers {
        toHaveText(expected: string): boolean;
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过这个

let m: jasmine.Matchers = expect(someSpy.someMethod).toHaveBeenCalled();
Run Code Online (Sandbox Code Playgroud)

并得到此错误:

类型'jasmine.Matchers'不能指定为'jasmine.Matchers'类型.存在两种具有此名称的不同类型,但它们是不相关的.

这似乎表明该declare namespace jasmine语句正在创建一个新的jasmine命名空间而不是扩展现有的命名空间.

那么如何创建我自己的打字稿,打字稿会很满意?

jasmine typescript jasmine-matchers

11
推荐指数
2
解决办法
3780
查看次数