Внедрение Detox Mock, но не работает - PullRequest
0 голосов
/ 25 января 2019

Я слежу за документацией Detox по продвижению с detox .Я делаю это потому, что хотел бы создать макет моего файла api.js, который по умолчанию выбирает данные с внутреннего сервера.Мой поддельный api-файл, который я назвал api.e2e.js, будет просто содержать функции, возвращающие обещанные данные json.К сожалению, поддельный API не срабатывает. Ниже мои библиотеки использовали

  1. реактивный нативный 0.57.8
  2. детокс 9.1.2

Iпопытался вызвать переменную env также с помощью команды metro и build, но безуспешно.

action / restaurant.js

import Api from '../api';

export const getRestaurants = () => {
    return (dispatch) => {
        dispatch(gettingRestaurants());
        Api.get.restaurants()
            .then(resJson => {
                console.log('get response', resJson);
                dispatch(getRestrauntsSucces(resJson));
            }).catch(error => {
                console.log('response error', error)
                dispatch(getRestaurantsFailure(error));
            })
    }
}

api.e2e.js

export default {
    get: {
        restaurants: () => {
            console.log('you are in fake api');
            return new Promise((resolve, reject) => {
                resolve( [
                    {
                        id: 1,
                        name: 'Test Shop',
                        location: 'Johore',
                        category: 'Johore',
                        user_id: 1
                    }
                ])
            })
        },


    }

}

rn-cli.config.js

module.exports = {
    getSourceExts: () => process.env.RN_SRC_EXT ? 
                         process.env.RN_SRC_EXT.split(',') : []
   };

Ожидается, что будет вызван поддельный API, но все же будет вызван исходный API.

1 Ответ

0 голосов
/ 10 февраля 2019

Вам нужно запустить свой упаковщик с RN_SRC_EXT=e2e.js перед запуском ваших тестов.

Таким образом, поток должен быть: Запустите RN_SRC_EXT=e2e.js react-native start, затем detox tests.Вы также можете попробовать построить детокс с RN_SRC_EXT=e2e.js в package.json:

    "detox": {
        "configurations": {
            "ios.sim.debug": {
                "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/Glitz.app",
                "build": " RN_SRC_EXT=e2e.js xcodebuild...YOUR BUILD",
                "type": "ios.simulator",
                "name": "iPhone X"
            }
        },
        "test-runner": "jest"
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...