【问题标题】:check if value is a string or a number in mocha/chai test在 mocha/chai 测试中检查值是字符串还是数字
【发布时间】:2017-03-21 13:43:55
【问题描述】:

我很好奇如何将value 测试为string numberchai。当这是一个严格的测试时,我知道如何为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"]);
    });
});

【问题讨论】:

    标签: javascript unit-testing mocha.js chai


    【解决方案1】:

    您可以编写自己的方法:

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

    然后在你的测试中:

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

    plugin utilities documentation

    【讨论】:

    • 这很酷...我对 chai 的研究还不够深入,所以我没有意识到我可以添加自己的断言。将来肯定会使用它。
    • 好主意,谢谢!但我认为已经内置了这样的选项,我还不知道。而且对于一次检查,实现自己的方法似乎是一种开销。但是对于其他有用的想法,知道它真的很整洁!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多