ДК
Джон КофиМамыр 19, 2020, 4:26 Т.Ж.

unit test: Call to undefined method Mock

Привет. Впервые пишу юнит тест.

public function testCreateHisTestsByNomenclature($testSuite)
    {
        //мокирование сервиса для взаимодействия с API поставщика Invitro
        $invitroService = $this->getMockBuilder(Invitro::class)
            ->disableOriginalConstructor()
            ->getMock();
        $invitroService->expects($this->once())->method("getNomenclature")
            ->will($this->returnCallback(array($this, 'getNomenclatureStub')));

но при запуске получаю ошибку
Call to undefined method Mock_Postavshik_4be36ab3::getN omenclature()
Почему так то? я ведь заменил этот метод на getNomenclatureStub, который реализован в этом же тестовом классе.

public function getNomenclatureStub()
    {
        $content = file_get_contents(__DIR__ . "/files/getNomenclaturePostavshik.json");
        return json_decode($content);
    }
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

3
Evgenii Legotckoi
  • Мамыр 19, 2020, 4:32 Т.Ж.

Добрый день. Точно заменили?

public function testCreateHisTestsByNomenclature($testSuite)
    {
        //мокирование сервиса для взаимодействия с API поставщика Invitro
        $invitroService = $this->getMockBuilder(Invitro::class)
            ->disableOriginalConstructor()
            ->getMock();
        $invitroService->expects($this->once())->method("getNomenclature") // <<<<<<<<<<<<<<< Это что тогда?
            ->will($this->returnCallback(array($this, 'getNomenclatureStub')));
    ДК
    • Мамыр 19, 2020, 4:45 Т.Ж.

    мне вместо getNomenclature тогда указать getNomenclatureStub? Я думал, что тут так:
    этот метод ->method("getNomenclature") заменить на этот ->will(...)

    $invitroService->expects($this->once())->method("getNomenclatureStub")
                ->will($this->returnCallback(array($this, 'getNomenclatureStub')));
    
      Evgenii Legotckoi
      • Мамыр 19, 2020, 4:49 Т.Ж.
      • (өңделген)

      Ну я PHP не знаю, и собственно его несколько презираю. Но даже просто видя то, что здесь написано, могу ожидать следующее поведение программы.

      • $invitroService->expects() - ожидается вызов чего-то
      • $this->once() - однократный
      • ->method("getNomenclatureStub") - очевидно метода getNomenclatureStub
      • ->will($this->returnCallback(array($this, 'getNomenclatureStub'))); - видать в будущем, или отложенный или асинхронный.

      Так что я просто сделал вывод, что имена методов должны совпадать.

      Попробуйте

        Пікірлер

        Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
        Кіріңіз немесе Тіркеліңіз
        OI
        • Ora Iro
        • Жел. 24, 2024, 6:38 Т.Ж.

        C++ - Тест 001. Первая программа и типы данных

        • Нәтиже:40ұпай,
        • Бағалау ұпайлары-8
        AD

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Нәтиже:50ұпай,
        • Бағалау ұпайлары-4
        m
        • molni99
        • Қаз. 26, 2024, 1:37 Т.Ж.

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Нәтиже:80ұпай,
        • Бағалау ұпайлары4
        Соңғы пікірлер
        ИМ
        Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
        Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
        Evgenii Legotckoi
        Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
        Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
        A
        ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
        Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
        ИМ
        Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
        Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
        d
        dblas5Шілде 5, 2024, 11:02 Т.Ж.
        QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
        Енді форумда талқылаңыз
        Evgenii Legotckoi
        Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
        добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
        t
        tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
        google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
        NSProject
        NSProjectМаусым 4, 2022, 3:49 Т.Ж.
        Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
        9
        9AnonimҚаз. 25, 2024, 9:10 Т.Ж.
        Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

        Бізді әлеуметтік желілерде бақылаңыз