Rails에서 Rspec으로 GraphQL 자동화 테스트 작성 하기

rails·2021년 10월 27일
0

Rails 튜토리얼

목록 보기
3/11

지난 포스팅에서는 GraphQL을 이용 해서 데이터를 읽고(read) 써(write) 보았다.

이번 포스팅에서는 TDD 에 기반하여 프로젝트를 진행 하거나 CI/CD를 도입하기 위해서 필요한 것들 중에 하나인 Rspec 작성 작업을 진행 해보자.

Resolver Object 에 유닛 테스트를 작성 해보면 좋은 연습이 될 것같다.

스펙들이 저장 되어 있는 test폴더 아래에 graphql 폴더를 만들고 그속에 mutations 폴더를 만들자. 그 이후에 create_link_test.rb 파일을 작성하자. 전체 경로는 다음과 같다.
test/graphql/mutations/create_link_test.rb

파일 내용은 아래와 같다.

require 'test_helper'

class Mutations::CreateLinkTest < ActiveSupport::TestCase
  def perform(user: nil, **args)
    Mutations::CreateLink.new(object: nil, field: nil, context: {}).resolve(args)
  end

  test 'create a new link' do
    link = perform(
      url: 'http://example.com',
      description: 'description',
    )

    assert link.persisted?
    assert_equal link.description, 'description'
    assert_equal link.url, 'http://example.com'
  end
end

테스트 실행 방법은 아래와 같다.

bundle exec rails test

실행결과는 다음과 같다.

워닝이 2개 발생 하긴 하지만 녹색 .이 1개 프린트 되는 것을 확인 할 수 있다.
이는 1개의 유닛테스트가 통과 되었다는 뜻이다.

테스트를 점점 늘려가면서 개발을 진행하면 되겠다.

profile
rails

0개의 댓글