Jestテストに反応します。google jsapiで未定義のプロパティ「マップ」を読み取ることができません

jonathanpuc

こんにちはみんな私はGoogleMaps JavaScript APIをセットアップし、それはすべて正常に機能していますが、私のテストはすべてエラーで失敗します

TypeError:未定義のプロパティ「マップ」を読み取ることができません。

これが私のコンポーネントの外観です

    import React, { Component } from 'react'
    import { connect } from 'react-redux'
    import List from './List'
    import { fetchPlaces } from '../../store/actions/places'
    const google = window.google
    export class Places extends Component {

    componentDidMount() {

    const pyrmont = { lat: -33.866, lng: 151.196 };

    const service = new google.maps.places.PlacesService(document.getElementById('map'))
    // this.props.fetchPlaces('fitzroy')
    const request = {
        location: pyrmont,
        radius: 500, type:
            ['restaurant'],
        placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4',
        fields: ['name', 'rating', 'formatted_phone_number', 'geometry']
    };

    service.nearbySearch(request, callback);


    function callback(place, status) {
        if (status == google.maps.places.PlacesServiceStatus.OK) {
            console.log(place)
        }
    }

   }
....rest of component

これが私のテストの様子です

    import React from 'react'
    import { render, renderIntoDocument } from 'react-testing-library'
    import 'jest-dom/extend-expect'
    import { Places } from '../../Places/Places'

   const baseProps = {
    fetchPlaces: jest.fn(),
   };

    test('it shows a loading message when places are being loaded on mount', () => {
    const { container } = render(<Places loading={true} places={[]} {...baseProps} />)
    expect(container).toHaveTextContent('Loading')
    });

エラースタックの最初の行は「Places.componentDidMount(src / components / Places / Places.js:13:34)」です。

編集:テストファイルにグーグルAPIのモックを設定しました。グーグルオブジェクトをconsole.logにすると、未定義ではなくなりましたが、テストでも同じエラーが発生します。

const setupGoogleMock = () => {

const google = {
    maps: {
        places: {
            AutocompleteService: () => { },
            PlacesServiceStatus: {
                INVALID_REQUEST: 'INVALID_REQUEST',
                NOT_FOUND: 'NOT_FOUND',
                OK: 'OK',
                OVER_QUERY_LIMIT: 'OVER_QUERY_LIMIT',
                REQUEST_DENIED: 'REQUEST_DENIED',
                UNKNOWN_ERROR: 'UNKNOWN_ERROR',
                ZERO_RESULTS: 'ZERO_RESULTS',
            },
        },
        Geocoder: () => { },
        GeocoderStatus: {
            ERROR: 'ERROR',
            INVALID_REQUEST: 'INVALID_REQUEST',
            OK: 'OK',
            OVER_QUERY_LIMIT: 'OVER_QUERY_LIMIT',
            REQUEST_DENIED: 'REQUEST_DENIED',
            UNKNOWN_ERROR: 'UNKNOWN_ERROR',
            ZERO_RESULTS: 'ZERO_RESULTS',
        },
    },
};
      global.window.google = google;
    };

    beforeAll(() => {
        setupGoogleMock();
    });
SheaDev

私は今日同様の問題に遭遇しましたが、次のエラーが発生しました: TypeError: window.google.maps.places.AutocompleteService is not a constructor

CRAの問題#955からの修正を見つけました-ここに

基本的に、AutoCompleteService行をに変更しAutocomplete: class {}ます。そのモックファイルの残りの部分は同じままにします。

私が持っているテスト(現在合格しています)は、「クラッシュせずにレンダリングする」という基本的なCRAの初期テストにすぎませんが、それでもうまくいくはずです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Reduxの取得は未定義のプロパティマップを読み取ることができません

分類Dev

Reactは未定義のプロパティマップを読み取ることができません

分類Dev

反応jestユニットテストケースTypeError:未定義のプロパティ 'then'を読み取ることができません

分類Dev

未定義のプロパティ「ディスパッチ」を読み取ることができません。React

分類Dev

マングースTypeError:未定義のプロパティ 'googleID'を読み取ることができません

分類Dev

reactjs-未定義のプロパティプッシュを読み取ることができません

分類Dev

discordinfoコマンドは未定義のプロパティxを読み取ることができません

分類Dev

カルマ:未定義のプロパティ*を読み取ることができません

分類Dev

未定義のプロパティ「ユニット」を読み取ることができません

分類Dev

未定義のReactフックのプロパティを読み取ることができません

分類Dev

TypeError:jestを使用して未定義のプロパティ 'prototype'を読み取ることができません

分類Dev

未定義の「タッチされた」プロパティを読み取ることができません

分類Dev

Angular 2は、2番目のマップの初期化中に未定義のプロパティ「マップ」を読み取ることができません

分類Dev

未定義のプロパティ「アクティビティ」を読み取ることができません

分類Dev

DashboardComponentで未定義のプロパティ「パイプ」を読み取ることができません

分類Dev

ReactJSテスト:未定義のプロパティ 'have'を読み取ることができません

分類Dev

未定義のプロパティを読み取ることができません。定義する方法は?

分類Dev

未定義のGoogleチャートのプロパティ「DataTable」を読み取ることができません

分類Dev

グーグルマップ未定義のプロパティ「マップ」を読み取ることができません

分類Dev

マングース-参照をプッシュ-未定義のプロパティ「プッシュ」を読み取ることができません

分類Dev

JasmineでMatDialogをユニットテストするときに、未定義のプロパティ 'afterClosed'を読み取ることができません

分類Dev

featureSelector ngrxを使用すると、未定義のマップのプロパティを読み取ることができません

分類Dev

アイソトープ-未定義のプロパティ 'filteredItems'を読み取ることができません

分類Dev

React Reduxのテスト-未定義、またはラッパー未定義のプロパティを読み取ることができません

分類Dev

ジェスト:未定義のプロパティを読み取ることができません

分類Dev

クラスで未定義のプロパティを読み取ることができません

分類Dev

Uncaught TypeError:GatsbyとgraphQlで未定義のプロパティ 'data'を読み取ることができません

分類Dev

NodejsとSequelizeで未定義のプロパティ「findOne」を読み取ることができません

分類Dev

AJAX呼び出しで未定義のプロパティ 'setState'を読み取ることができません

Related 関連記事

  1. 1

    Reduxの取得は未定義のプロパティマップを読み取ることができません

  2. 2

    Reactは未定義のプロパティマップを読み取ることができません

  3. 3

    反応jestユニットテストケースTypeError:未定義のプロパティ 'then'を読み取ることができません

  4. 4

    未定義のプロパティ「ディスパッチ」を読み取ることができません。React

  5. 5

    マングースTypeError:未定義のプロパティ 'googleID'を読み取ることができません

  6. 6

    reactjs-未定義のプロパティプッシュを読み取ることができません

  7. 7

    discordinfoコマンドは未定義のプロパティxを読み取ることができません

  8. 8

    カルマ:未定義のプロパティ*を読み取ることができません

  9. 9

    未定義のプロパティ「ユニット」を読み取ることができません

  10. 10

    未定義のReactフックのプロパティを読み取ることができません

  11. 11

    TypeError:jestを使用して未定義のプロパティ 'prototype'を読み取ることができません

  12. 12

    未定義の「タッチされた」プロパティを読み取ることができません

  13. 13

    Angular 2は、2番目のマップの初期化中に未定義のプロパティ「マップ」を読み取ることができません

  14. 14

    未定義のプロパティ「アクティビティ」を読み取ることができません

  15. 15

    DashboardComponentで未定義のプロパティ「パイプ」を読み取ることができません

  16. 16

    ReactJSテスト:未定義のプロパティ 'have'を読み取ることができません

  17. 17

    未定義のプロパティを読み取ることができません。定義する方法は?

  18. 18

    未定義のGoogleチャートのプロパティ「DataTable」を読み取ることができません

  19. 19

    グーグルマップ未定義のプロパティ「マップ」を読み取ることができません

  20. 20

    マングース-参照をプッシュ-未定義のプロパティ「プッシュ」を読み取ることができません

  21. 21

    JasmineでMatDialogをユニットテストするときに、未定義のプロパティ 'afterClosed'を読み取ることができません

  22. 22

    featureSelector ngrxを使用すると、未定義のマップのプロパティを読み取ることができません

  23. 23

    アイソトープ-未定義のプロパティ 'filteredItems'を読み取ることができません

  24. 24

    React Reduxのテスト-未定義、またはラッパー未定義のプロパティを読み取ることができません

  25. 25

    ジェスト:未定義のプロパティを読み取ることができません

  26. 26

    クラスで未定義のプロパティを読み取ることができません

  27. 27

    Uncaught TypeError:GatsbyとgraphQlで未定義のプロパティ 'data'を読み取ることができません

  28. 28

    NodejsとSequelizeで未定義のプロパティ「findOne」を読み取ることができません

  29. 29

    AJAX呼び出しで未定義のプロパティ 'setState'を読み取ることができません

ホットタグ

アーカイブ