私は 'counter'のために 'test'関数を書いていますが、動作しません!私が間違っているところを理解するのを助けることができますか?JavaScript:テスト機能
'test'には 'toEqual'というメソッドが必要です。
PS: 'カウンター' は良いです
function test(data) {
\t toEqual: function(e) {
\t return (
\t this.data.bind(this) == e ? console.log('good'):console.log('sucks!')
\t );
\t }
}
const counter = (state = 0, action) => {
switch (action.type) {
case 'INCREMENT':
return state + 1;
case 'DECREMENT':
return state - 1;
default:
return state;
}
}
test(
counter(0, { type: 'INCREMENT' })
).toEqual(1);
test(
counter(1, { type: 'INCREMENT' })
).toEqual(2);
test(
counter(2, { type: 'DECREMENT' })
).toEqual(1);
test(
counter(2, { type: 'DECREMENT' })
).toEqual(0);
test(
counter(1, { type: 'SOMETHING_ELSE' })
).toEqual(1);
test(
counter(undefined, {})
).toEqual(0);
あなたのコードでは、構文エラーを与える:
を次に、あなたは、単にこのように、二つの引数を使用して
toEqual
関数を呼び出すことができます! – gurvinder372関数とオブジェクトリテラルが混乱しています。関数にはメソッドがありません。 – Bergi
@Bergi - おそらく私はあなたのコメントを誤解しているかもしれませんが、JavaScriptの "オブジェクト"がもっとも確かにメンバーとしての機能を持つことができることに注意してください。 –