检查值是字符串还是mocha / chai test中的数字

时间:2017-03-21 13:43:55

标签: javascript unit-testing mocha chai

我很好奇如何使用value测试stringnumber chai。我知道如何为stringnumber编写测试,当它是严格的测试时。但是当value可能是其中之一时,如何处理呢?

对字符串的测试:

describe("test", () => {
    it("should be a string", () => {
       let value = "1234";
       value.should.be.a("string");
    });
});

对数字的测试:

describe("test", () => {
    it("should be a number", () => {
       let value = 1234;
       value.should.be.a("number");
    });
});

是否有chai的内置方式来执行此操作?

我知道我可以做一些解决方法,如下所示。但这感觉有些 hacky

describe("test", () => {
    it("should be a number or string", () => {
       let value = 1234;
       (typeof value).should.be.oneOf(["string", "number"]);
    });
});

1 个答案:

答案 0 :(得分:3)

您可以编写自己的方法:

chai.Assertion.addMethod('stringOrNumber', function () {
    //Check if it is a string or a number here
});

然后在你的测试中:

expect(myValue).to.be.stringOrNumber();

请参阅plugin utilities documentation