0

AVA はインスタンス メソッド 'this' のバインドを解除しているようです。

class Person {
    constructor(name) {
        this.name = name;
    }

    sayMyName() {
        const name = this.name;
        return new Promise(function (resolve, reject) {
            reject(new Error(name));
        });
    }
}

test('test', async (t) => {
    const person1 = new Person('Bob');
    const error = await t.throws(person1.sayMyName);
    t.is(error.message, 'Bob');
});

上記のコードの場合、次のようになります。

   85:     const error = await t.throws(person1.sayMyName);
   86:     t.is(error.message, 'Bob');
   87: });

  Difference:

  "CannBot read property \'name\' of undefinedb"

この約束を次のように手動でバインドしようとしました: person1.sayMyName.bind(person1) ですが、これもうまくいかないようです。

4

1 に答える 1