Ruby On Rails/RSpec (14) 썸네일형 리스트형 guard 특징 1. guard 란? 파일이 변경되었을 때, 그것을 감지하여 자동으로 테스트 명령어를 실행시켜주는 gem입니다. 2. Guardfile controller path, view path, model, service 등의 Path가 실제 패스와 매칭이 되어서 그 값을 자동적으로 테스트를 진행시켜줍니다. 만약 매칭이 잘 안된다면 직접 추가를 해주면 됩니다. spring 특징 1. spring 이란? preload all libraries reload all files 2. spring 장점 a default part of rails, so you know it’s well supported, and bugs will be fixed fast. slightly simpler to install and use than Zeus 3. spring 단점 Spring lacks support for parallel tests a bit opaque in terms of errors given there’s no console window 4. spring 서버에 문제가 생긴다면? bundle exec spring stop rspec으로 test를 하면 자동으로 재시작해준다. bund.. System vs Feature vs Request spec 통합 테스트로 어떤 spec을 선택할지 고민하려고 이 내용을 정리하였다. 내가 선택한 spec은 feature spec이고, 선택한 가장 큰 이유는 안정성이다. 1. System spec 가장 핵심은 Third Party Extension 이 필요 없다. 즉, 설정을 최소화할 수 있다는 것을 거듭 강조함. 공식적으로 RSpec 팀이 추천하는 통합 테스트 내부적으로 다 settings이 되어있으므로, selenium driver 와 chrome browser 가 디폴트이다. 2017년 10월쯤에 나와서 얼마안됨. 쌓인 데이터가 얼마 없음 2. Feature spec capybara, databaseCleaner settings를 해줘야만 한다. 오랫동안 rspec 통합 테스트 많이 사용되어왔음, 즉, 기술.. rspec reference 정리 1. better specs, rspec-expectations, rspec-mocks, rspec-core, rspec-rails www.betterspecs.org/ Better Specs. Testing Guidelines for Developers. Better Specs is a collection of best practices developers learned while testing apps that you can use to improve your coding skills, or simply for inspiration. Better Specs came to life at Lelylan (open source IoT cloud platform) and checking out its tes.. 나머지 스펙과 디버그에 대한 이야기 안녕하세요. 다루지 않은 나머지 스펙들과 디버그에 대해 설명하겠습니다. 1. request spec, view spec,, etc 1) service spec을 제외한 spec(model spec 포함)에서는 복잡한 로직을 다루지 않기 때문에 let()을 활용해서 사용하려는 가장 객체를 생성해 그 값을 저장하고 테스트를 진행하시면 되겠습니다. 2) request spec a. request spec은 controller spec이라고 생각하셔도 무방합니다. b. status code, redirection, text in the response body 등을 확인할 때 쓰입니다. c. 테스트하고자 하는 경로의 상태코드를 확인하는데 유용합니다. 2. debug 1) byebug 2) feature spec.. model spec 작성방법 안녕하세요. 이번에는 model spec에 대해 알아보겠습니다. 1. model spec 이란? 1) RSpec reference 뿐만 아니라 shoulda-matchers reference도 참고를 해서 작성을 해주시면 됩니다. 2) associations 에 대한 테스트 코드는 작성할 필요가 없다고 합니다. a. 왜냐하면 association에 대한 테스트는 model 안에서 작은 테스트가 아니라 통합 테스트 단계에서 테스트가 될 것이기 때문에 가치가 없다고 합니다. 3) 인스턴스 변수에 대한 validation은 아래와 같이 작성을 해주시면 되겠습니다. 2. 작성방법 RSpec.describe RetailStore, type: :model do let(:retail_store) { build(:re.. Feature spec 작성방법 안녕하세요. 오늘은 Feature spec 작성방법에 대해 적어보겠습니다. 1. Featrue spec 이란? 1) it provides methods to visit pages, fill in forms, click buttons, and more 2) Feature specs simulate a user opening your app in a browser and interacting with the page 3) 전 과정을 모두 거치는 통합 테스트입니다. 4) 터미널에서 보는 테스트와 웹 브라우저에서 보는 테스트 결과를 분리해서 확인할 수 있습니다. a. capybara 모듈에 들어가 보면 reckTest와 selenium 모듈이 정의되어 있습니다. b. ReckTest (1) feature spe.. Service spec 작성방법 서비스 스펙에서 비즈니스 로직을 테스트합니다. 그래서 단일 모델만 테스트하는 경우는 거의 없고 연관관계에 속해있는 데이터들을 다루어야 합니다. 이런 경우에 it scope 안에서 가상 모델 객체를 생성해서 테스트를 진행해야 하는데요. 이때에 private 메서드는 어떻게 접근해야 하는지 고민이 되었습니다. 결론부터 말씀드리면, rspec은 private 메서드에 직접 접근을 좋아하지 않습니다. 그 private 메서드를 사용하는 public 메서드에 접근해서 테스트하는 것을 선호하죠. 행동 중심 테스트를 추구하니까요. 그렇다고 항상 실무에서 FM(Field Manual)으로만 할 수는 없습니다. ruby, rails 등 제공하는 메서드를 사용해서 코드를 짠 것이 아닌 검증되지 않은 코드, 즉, 개발자가 .. 이전 1 2 다음