如何编写一个检查chai中多种类型的测试

Aus*_*vis 13 unit-testing chai

我正在尝试编写一个测试,如果输入是字符串或空值,它将通过

在柴是有类似的东西

expect(foo).to.be.a('string').or.a('null')
Run Code Online (Sandbox Code Playgroud)

如果不是,在编写需要检查多种类型的测试时最佳做法是什么?

juu*_*nas 7

这可能是最简单的方法,因为没有or关键字.

var str = null;

expect(str).to.satisfy(function(s){
    return s === null || typeof s == 'string'
});
Run Code Online (Sandbox Code Playgroud)


use*_*490 0

您传递给 chai 的第一个参数assert是一个表达式,因此您可以这样做:

assert(assert.isString(foo) || assert.isNull(foo), 'must be a string or null');