Проверьте с помощью RSpec, если установлено значение по умолчанию для аргумента метода поля graphQL - PullRequest
2 голосов
/ 17 апреля 2019

Как написать тест для проверки значений по умолчанию аргумента методов поля?

    field :foo, String, null: false do
      argument my_argument, Int, required: true
      argument my_other_argument, Boolean, required: false
    end

    def foo(my_argument:, my_other_argument: true)
      <some code>
    end

Мои попытки пройти тест RSpec:

    field :foo, "String!" do
      it "test that my_other_argument has a default value of true"
       resolve(args: {my_argument: 10}) # Note that my_other_argument is not given a value

       expect(args[:my_other_argument]).to eq(true)
      end
    end

Приведенный выше пример дает сбой и выдает эту ошибку:

undefined local variable or method `args'

Итак, чтобы свести это к минимуму, похоже, не могу понять, как должен быть записан этот ряд:

expect(args[:my_other_argument]).to eq(true)

... или, может быть, я нахожусь на совершенно неверном пути?

1 Ответ

0 голосов
/ 17 апреля 2019

Если foo вызывает другой метод, вы можете использовать recieve и with.Что-то вроде ...

class Foo
  def bar(my_other_argument: true)
    baz(my_other_argument)
  end

  def baz(val)
    # Stuff
  end
end

describe :bar do
  context 'default values' do
    it 'defaults to true' do
      @foo = Foo.new
      expect(@foo).to receive(:baz).with(true)

      @foo.bar
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...