タグ付けされた質問 「jestjs」

Jestは、Jasmineに基づいてFacebookによって作成されたJavaScriptユニットテストフレームワークであり、自動化されたモックの作成とjsdom環境を提供します。Reactコンポーネントのテストによく使用されます。

10
Jestを使用してJavaScriptウィンドウオブジェクトをモックする方法は?
ブラウザで新しいタブを開く機能をテストする必要があります openStatementsReport(contactIds) { window.open(`a_url_${contactIds}`); } ウィンドウのopen関数をモックして、正しいURLがopen関数に渡されていることを確認したいと思います。 Jestを使用して、をモックする方法がわかりませんwindow。window.openモック関数で設定しようとしましたが、うまくいきません。以下はテストケースです it('correct url is called', () => { window.open = jest.fn(); statementService.openStatementsReport(111); expect(window.open).toBeCalled(); }); しかし、それは私にエラーを与えます expect(jest.fn())[.not].toBeCalled() jest.fn() value must be a mock function or spy. Received: function: [Function anonymous] テストケースはどうすればよいですか?任意の提案やヒントをいただければ幸いです。

6
ジェスト:ユニットテスト内のコンソールを無効にするより良い方法
より良い方法があれば、私は不思議無効コンソールのエラー 内部の特定の冗談テスト(すなわち、本来のコンソールを復元し、各試験後/前)。 これが私の現在のアプローチです: describe("Some description", () => { let consoleSpy; beforeEach(() => { if (typeof consoleSpy === "function") { consoleSpy.mockRestore(); } }); test("Some test that should not output errors to jest console", () => { expect.assertions(2); consoleSpy = jest.spyOn(console, "error").mockImplementation(); // some function that uses console error expect(someFunction).toBe("X"); expect(consoleSpy).toHaveBeenCalled(); }); …

5
jestとreact-testing-libraryを使用して、要素が存在しないことをどのようにテストしますか?
Jestとreact-testing-libraryを使用するための単体テストを作成しているコンポーネントライブラリがあります。特定の小道具やイベントに基づいて、特定の要素がレンダリングされていないことを確認したいと思います。 getByText、getByTestIdなどがスローされreact-testing-library、要素が見つからない場合はエラーが発生し、expect関数が起動する前にテストが失敗します。 react-testing-libraryを使用して、jestに存在しないものをどのようにテストしますか?

3
単一のテストごとにモック実装を変更する方法[Jestjs]
デフォルトのモックの動作を拡張し、次のテストの実行時に元の実装に戻すことで、単一のテストごとにモックされた依存関係の実装を変更したいと思います。 もっと簡単に言えば、これは私が達成しようとしていることです: モック依存関係 単一のテストでモック実装を変更/拡張する 次のテストが実行されると、元のモックに戻ります 現在使用していJest v21ます。 典型的なJestテストは次のようになります。 __mocks__/myModule.js const myMockedModule = jest.genMockFromModule('../myModule'); myMockedModule.a = jest.fn(() => true); myMockedModule.b = jest.fn(() => true); export default myMockedModule; __tests__/myTest.js import myMockedModule from '../myModule'; // Mock myModule jest.mock('../myModule'); beforeEach(() => { jest.clearAllMocks(); }); describe('MyTest', () => { it('should test with default mock', () …

4
Jestで1つのテストのみを実行します
非常に単純です。Jestで1つのテストだけを実行したいと思います。 私は置くit.onlyかdescribe.only、しかしそれはまだたくさんのテストを実行します。前回のコミット以降、すべてのテストを実行すると思いますが、onlyフラグを明示的に設定した状態でこの動作を行うべきではありませんか? この動作の原因と単一のテストの実行方法は何ですか?


3
Jestモック関数の呼び出しをリセットする方法はすべてのテストの前にカウントします
Jestは初めてですが、関数が呼び出されたかどうかをテストするために使用しようとしています。mock.calls.lengthがすべてのテストでリセットされるのではなく、蓄積されていることに気づきました。すべてのテストの前にどうすれば0にすることができますか?次のテストが前の結果に依存することを望まない。 JestにはbeforeEachがあることを知っています-それを使用する必要がありますか?mock.calls.lengthをリセットする最良の方法は何ですか?ありがとうございました。 コード例: Sum.js: import local from 'api/local'; export default { addNumbers(a, b) { if (a + b <= 10) { local.getData(); } return a + b; }, }; Sum.test.js import sum from 'api/sum'; import local from 'api/local'; jest.mock('api/local'); // For current implementation, there is a difference // if I …

6
Jestでボタンクリックをシミュレートする
ボタンクリックのシミュレーションは、非常に簡単で標準的な操作のようです。それでも、Jest.jsテストで動作させることはできません。 これは私が試したものです(そしてjQueryを使用してそれを実行しました)が、何もトリガーされなかったようです: import { mount } from 'enzyme'; page = <MyCoolPage />; pageMounted = mount(page); const button = pageMounted.find('#some_button'); expect(button.length).toBe(1); // It finds it alright button.simulate('click'); // Nothing happens

4
jestでuseHistoryフックをモックする方法は?
typescriptを使用して反応ルーターv5.1.2でUseHistoryフックを使用していますか?単体テストを実行すると、問題が発生します。 TypeError:未定義のプロパティ 'history'を読み取れません。 import { mount } from 'enzyme'; import React from 'react'; import {Action} from 'history'; import * as router from 'react-router'; import { QuestionContainer } from './QuestionsContainer'; describe('My questions container', () => { beforeEach(() => { const historyHistory= { replace: jest.fn(), length: 0, location: { pathname: '', search: …

1
JESTテストのgetComputedStyle()がChrome / Firefox DevToolsの計算されたスタイルに異なる結果を返すのはなぜですか
material-uiにMyStyledButton基づくカスタムボタン()を作成しました。 Button import React from "react"; import { Button } from "@material-ui/core"; import { makeStyles } from "@material-ui/styles"; const useStyles = makeStyles({ root: { minWidth: 100 } }); function MyStyledButton(props) { const buttonStyle = useStyles(props); const { children, width, ...others } = props; return ( <Button classes={{ root: buttonStyle.root }} …

5
jestの「モジュールの外部でimportステートメントを使用できない」を解決する方法
TypeScript、Jest、Webpack、Babelを使用して構築されたReactアプリケーション(Create React Appを使用していない)があります。「yarn jest」を実行しようとすると、次のエラーが発生します。 すべてのパッケージを削除して再度追加してみました。これは解決されません。私は同様の質問とドキュメントを見ましたが、それでも何かを誤解しています。私はこの環境をゼロからセットアップするための別のガイドに従うまで行っても、私のコードでこの問題を受け取りました。 依存関係は... "dependencies": { "@babel/plugin-transform-runtime": "^7.6.2", "@babel/polyfill": "^7.6.0", "babel-jest": "^24.9.0", "react": "^16.8.6", "react-dom": "^16.8.6", "react-test-renderer": "^16.11.0", "source-map-loader": "^0.2.4" }, "devDependencies": { "@babel/core": "^7.6.0", "@babel/preset-env": "^7.6.0", "@babel/preset-react": "^7.0.0", "@types/enzyme": "^3.9.2", "@types/enzyme-adapter-react-16": "^1.0.5", "@types/jest": "^24.0.13", コンポーネントのインポート行... import * as React from "react"; import { BrowserRouter as Router, Route, …

1
VueコンポジションAPIコンポーネントでjestを使用してユニットテストを行う方法
私はvue.jsの私の構成APIコンポーネントのためにjestでユニットテストを書いています。 しかし、コンポジションAPIのsetup()の関数にアクセスできません。 Indicator.vue <template> <div class="d-flex flex-column justify-content-center align-content-center"> <ul class="indicator-menu d-flex justify-content-center"> <li v-for="step in steps" :key="step"> <a href="#" @click="updateValue(step)" :class="activeClass(step, current)"> </a> </li> </ul> <div class="indicator-caption d-flex justify-content-center"> step <span> {{ current }}</span> from <span> {{ steps }}</span> </div> </div> </template> <script lang="ts"> import {createComponent} from '@vue/composition-api'; export …

2
エラーのためにJestでpostメソッドをテストできません。未定義のmockImplementationを読み取れません
APIを呼び出すためのさまざまなメソッドがあるAPIサービスがあります。すべてのGETリクエストのテストに成功しましたが、POSTリクエストのテストに問題があります。 これがメソッドです: export default class ApiService { static makeApiCall = <T>( url: string, oneCb: <T>(d: Data) => T, secondCb: (d: T) => void, errorCb?: (a: ErrorModel) => void, method = 'get', data = {}, ): Promise<void> => { const config: AxiosRequestConfig = {}; if (method === 'post') { config.headers = …

1
反応でクラスコンポーネントをテストする方法
私はいくつかのユニットテストを試みています、私は偽の例でサンドボックスを作成しましたhttps://codesandbox.io/s/wizardly-hooks-32w6l(実際にはフォームがあります) class App extends React.Component { constructor(props) { super(props); this.state = { number: 0 }; } handleSubmit = (number1, number2) => { this.setState({ number: this.handleMultiply(number1, number2) }) } handleMultiply = (number1, number2) => { return number1 * number2 } render() { const { number } = this.state; return ( <div …

3
create-react-appでjest.config.jsを使用する方法
私のjest設定を自分のpackage.jsonから移動したいのですが、ここで提案されているように--configを使用しようとしていますが、エラーが発生しますargv.config.match is not a function package.json "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test --config jest.config.js", "eject": "react-scripts eject", }, cli hutber@hutber-mac:/var/www/management/node$ npm test -u > management-fresh@0.1.0 test /var/www/management/node > react-scripts test --config jest.config.js Usage: test.js [--config=<pathToConfigFile>] [TestPathPattern] argv.config.match is not a function npm ERR! Test failed. …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.