私はReactアプリケーションをテストしています。これは基本的に公式に祝福された標準create-react-app
の設定に従っています。次のようになぜ私の `反応スクリプト`テストはJest関数 `toMatchObject`を認識しませんか?
は、私は私のテストを書かれている:
{
...
"devDependencies": {
"enzyme": "^2.6.0",
"react-scripts": "0.8.3",
...
},
"dependencies": {
"react": "^15.4.1",
...
},
"scripts": {
"test": "react-scripts test --env=jsdom",
...
},
"jest": {
"automock": false
}
}
私は、次のエラーメッセージが表示されますテストを実行
:TypeError: expect(...).toMatchObject is not a function
import React from 'react';
import {shallow} from 'enzyme';
import MyComponent from './MyComponent';
describe('MyComponent',() => {
it('should have the expected properties',() => {
const wrapper = shallow(<MyComponent/>);
expect(wrapper.props()).toMatchObject({a: 1});
});
});
私のpackage.jsonには、以下が含まれています。
ただし、react-scripts documentationには、Jestが使用されるビルトインツールの1つであると記載されています。私はnpm install
する必要はありません。 Jest documentationは、toMatchObject
がであることを明確に示しています。
なぜこのエラーメッセージが表示されますか?
'npm install jest'を試しましたが、更新されているようですが、' toMatchObject'はまだ動作しません。'$(npm bin)/ jest --version'を実行すると' v18.1.0'になりますが、 'npm test --version'は' v17.0.3'です。うーん。 – Scimonster
更新: 'node_modules/react-scripts/node_modules/jest'を削除して削除しました。 – Scimonster
@Scimonster、私はあなたの言っていることをエコーして、つまりnpm install jestが問題を一貫して解決していないように、私の答えを再び更新しました。私の答えには、ソリューションを手に入れることができなかったので、私のために働かせるためのハッキングが追加されました。しかし、助けてくれてありがとう。多分それは他人を助けるでしょう。 –