javascript - 检查 value 是 mocha/chai 测试中的字符串还是数字

标签 javascript unit-testing mocha.js chai

我很好奇如何测试一个是一个string number with 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"]);
    });
});

最佳答案

您可以编写自己的方法:

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

然后在你的测试中:

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

参见 plugin utilities documentation

关于javascript - 检查 value 是 mocha/chai 测试中的字符串还是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42928928/

相关文章:

python - python 包和测试的问题

javascript - AngularJS TypeScript 单元测试

javascript - 在 Jquery 中隐藏除某个类的一个元素以外的所有元素

javascript - 如何逐渐放大传单,javascript

java - 使用参数化引用类型参数模拟 Spring RestTemplate.exchange 调用

javascript - 如何在 Mocha 测试中要求相同的文件

javascript - Chai deep.include 抛出错误 "Uncaught AssertionError: expected..."

javascript - 使用 jQuery each 和 javascript 正则表达式匹配 HTML block 中的最低价和最高价

javascript - 在javascript中高效解析电子邮件正文

java - 在同一对象中测试方法时如何模拟对象中的方法