如何在jasmine.js中检查值是整数还是字符串?

js9*_*999 20 jasmine

我正在使用BackboneJS在Web应用程序中使用Jasmine编写单元测试.
有很多示例向您展示如何以这种方式检查值:

        it("should set the id property to default value", function()
        {
            expect(this.task.get("id")).toEqual(null);
        });
Run Code Online (Sandbox Code Playgroud)

但是我找不到任何使用Jasmine检查Javascript中的属性是否为数字或字符串的示例.

这样检查是否合适?
如果是的话,制作它的正确方法是什么?

示例:我想检查是否id是大于0的整数.如何在Jasmine中创建它?

Bre*_*ett 70

对于子孙后代,这里提出的一个问题是测试一个值是否为数字.来自茉莉花文档:

expect(12).toEqual(jasmine.any(Number));
Run Code Online (Sandbox Code Playgroud)


ant*_*njs 8

我会做这样的事情:

    describe("when instantiated", function() 
    {
        it("should exhibit attributes", function () 
        {  
            .....
            expect(this.task.get("id")).toMatch(/\d{1,}/);
            .....
        });
    });
Run Code Online (Sandbox Code Playgroud)

  • 要注意这个正则表达式将验证"wadus12wadus" (7认同)

the*_*heo 5

老实说,我不知道正确的方法是什么,但我会写这样的东西:

 it("should set the id property to default value", function () {
        var id = this.task.get("id");
        expect(typeof id).toEqual('number');
        expect(id).toBeGreaterThan(0);
 });
Run Code Online (Sandbox Code Playgroud)