Есть ли способ добавить пользовательские методы для утверждения интерфейса чай? - PullRequest
0 голосов
/ 13 июня 2018

Есть ли способ добавить пользовательские методы для подтверждения интерфейса chai?

Я пробовал с:

// test-helper.js

export const testPlugin = function(chai) {
    chai.Assertion.addMethod('customMethod', function() {
      //Something
    })
 }

// abc.test.js

import {assert, use} from 'chai'
import {testPlugin} from 'test-helper.js'

use(testPlugin)

Но я думаю, что это работает только для ожидаемого интерфейса chai,Я хочу использовать этот пользовательский метод как assert.customMethod(actual, expected)

Дайте мне знать, если я что-то здесь упускаю.

Ответы [ 2 ]

0 голосов
/ 16 июля 2018

Расширяя другой ответ ... посмотрите на определение для assert.equal Чая и другие нативные утверждения для справки.Ваше пользовательское утверждение может выглядеть так:

const chai = require("chai");
chai.assert.assertSpecial = function (actual) {
    // see https://github.com/chaijs/chai/blob/master/lib/chai/assertion.js
    // for Assertion's argument definitions
    const test = new chai.Assertion(null, null, chai.assert, true);
    test.assert(
        actual === "special",
        `expected ${actual} to be "special"`,
        `expected ${actual} to not be "special"`,
        "special",
        actual,
        true);
};
0 голосов
/ 13 июня 2018
 assert.customMethod = function(actual, expected) {
   //...
};

Это называется исправлением Monkey.

...