RSpec 보안 개발 사용
미안하면 옛날에 시험 쓰는 거 싫어했는데 어쩔 수 없었어요 웃어요
요컨대 빨리 발매하고 가치를 제공하려는 욕망이 앞서면서 여분의 임무가 분배된 것 같아서...
하지만 지금은 시험이 없어서 발매가 무섭다.
만약 Production 발표 후 치명적인 오류가 발생했다면 리버트 사과와 같은 고통스러운 추억만 남길 뿐, 결과는 신속하게 부정적인 가치를 제공했다.
그래서 이번에 나는 시험을 좋아하지 않는다. 나는 시험 기술의 장점과 나쁜 점을 이야기할 수 있다면 좋겠다고 생각한다.
!
Rspec의 가져오기 및 기술 설명은 생략됩니다.
RSpec은
RSpec는 루비용 테스트 프레임워크입니다.
예제
아래의 간단한 방법이라도 테스트를 적으면 방법을 보증할 수 있는 동작이다.
아래의 견본 코드는 DB에서 이름을 얻어 전체 이름을 반납하는 간단한 것들이지만, 일부러 브라우저로 전체 이름이 잘 표시된 것을 확인하는 것은 번거롭겠지...(반응이 느린 사이트를 개발할 때 스트레스가 쌓여...)
user.rb
class User < ApplicationRecord
def full_name
"#{self.last_name} #{self.first_name}"
end
end
user_spec.rbrequire 'rails_helper'
RSpec.describe User, type: :model do
describe 'full_name' do
let(:user) { create(:user, first_name: '太郎', last_name: '田中') }
it 'フルネームを取得すること' do
expect(user.full_name).to eq '田中 太郎'
end
end
end
시험의 좋은 점을 쓰다
개인적으로 느끼는 은혜는 다음과 같다.
rails console
에서 데이터create# usersテーブルを作成したが、まだ実データは存在しない場合
describe 'update_user_name' do
let_it_be(:user) { create(:user) }
it '名前を変更すること' do
user.update_user_name(new_name: "hogehoge")
expect(user.reload.name).to eq "hogehoge"
end
end
를 진행할 필요가 없음# シナリオテストなどの時に、機能の全体像を把握しやすい
describe 'メッセージ予約シナリオ' do
let_it_be(:user) { create(:user) }
let_it_be(:user2) { create(:user) }
context '過去の時間で予約を試みている時' do
it 'raiseエラーが発生すること' do
expect{
user.reserve_message(
target_user_id: user2.id,
text: 'おはよう',
scheduled_at: Time.zone.now.ago(1,month)
)
}.to raise_error('過去の日時での予約はできません。')
end
end
context '送信予定のユーザが退会した場合' do
it '現在の予約件数が1減ること' do
expect(user.current_reserve_messages.length).to eq 2
user2.quit_service! # 「この退会メソッド叩かれた時に、関連する予約データは破棄される」という気づきがある。
expect(user.current_reserve_messages.length).to eq 1
end
end
end
기존 처리와 관련된 개발 시 의외의 오류 등을 사전에 피할 수 있다
나는 이것이 특히 좋은 점이 있다고 생각한다.
제품은 처음에는 매우 작았지만 성장함에 따라 코드의 양도 끊임없이 증가할 것이다.그때는 누구나 이전에 운행했던 기능에 문제가 생겼다는 것을 체험할 수 있었다.엔지니어들이 각자 자기가 실시한 기능 테스트를 진지하게 기술했기 때문에 영향 범위의 자동 검사를 실현하기 위해 새로 개발할 때 조마조마하지 않고 개발할 수 있다.
시험의 나쁜 점을 쓰다
은혜와의 절충이지만 개인적인 느낌의 단점은 다음과 같다.
안전한 상태에서 발표하는 게 좋을 것 같아서 다음은 어쩔 수 없는 일이라고 생각합니다.
시험 후 좋은 곳을 쓰기 시작하다
총결산
작업 시간 문제가 존재할 수 있지만 서비스를 사용하는 단말기 사용자가 편안하게 사용할 수 있도록 테스트 설명이 상당히 중요한 책임을 진다고 생각합니다!
시험을 열심히 쓰는 것을 추천합니다!
엔지니어 채용을 강화하고 있다
주식회사 오버플로우가 엔지니어를 모집하고 있다.Offers의 개발과 오버플로우에 관심이 있으시다면 꼭 신청하세요!분위기 파악을 위해 우선 부업부터 환영한다.
어쨌든 너의 의견을 듣고 싶다!이런 분들은 본사 CTO와의 캐주얼한 면담을 추천합니다.
※ 상기 채용은 본 원고 집필 시 정보이므로 열람 시 변경 사항이 있으면 양해 바랍니다
관련 보도
각주
테스트 대상 파일에서 테스트 기술의 정도를 계산합니다.↩︎
Reference
이 문제에 관하여(RSpec 보안 개발 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/offers/articles/20220421-rspec-merit-and-demerit-and-tips텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)