Factory Girl-목적이 무엇인가요?
before(:each)
블록을 사용할 수있을 때 rspec 테스트에서 Factory Girl의 목적은 무엇입니까 ? Factory Girl과 a의 유일한 차이점은 공장 before(:each)
이 테스트 외부에서 객체 생성을 준비한다는 것입니다. 이게 옳은 거니?
Factory Girl 및 Sham 과 같은 보석을 사용하면 유효하고 재사용 가능한 개체에 대한 템플릿을 만들 수 있습니다. 그들은 고정 된 레코드가 데이터베이스에로드되어야하는 고정 장치에 대한 응답으로 생성되었습니다. 개체를 인스턴스화 할 때 더 많은 사용자 지정을 허용하고 작업 할 유효한 개체가 있는지 확인하는 것을 목표로합니다. 테스트의 모든 위치와 테스트 전후의 후크에서 사용할 수 있습니다.
before (: each), before (: all), after (: each) 및 after (: all) 모두 테스트 그룹간에 공유 할 설정 및 분해를 수행 할 수있는 공간을 제공하는 것을 목표로합니다. 예를 들어, 모든 단일 테스트에 대해 새로운 유효한 사용자를 생성하려는 경우 before (: each) 후크에서이를 수행하고 싶을 것입니다. 파일 시스템에서 일부 파일을 지우려면 before hook에서 지우고 싶습니다. 테스트가 모두 tmp 파일을 만들고 테스트 후에 제거하려면 after (: each) 또는 after (: all) 후크에서이를 수행합니다.
이 두 개념이 다른 점은 팩토리가 테스트 주변에 후크를 생성하는 것이 아니라 유효한 Ruby 객체 및 레코드를 생성하는 것을 목표로하여 객체 생성을 유연하고 DRY로 유지할 수 있다는 것입니다. 이전 및 이후 후크는 설정 및 해제 코드를 DRY로 유지할 수 있도록 예제 그룹에서 공유되는 설정 및 해제 작업을 목표로합니다.
FactoryGirl은 테스트에서 설비를 대체합니다. 이렇게하면 데이터 모델을 변경할 때 설비를 최신 상태로 유지할 필요가 없습니다. 더 많은 가장자리 케이스를 추가하면 고정 장치가 다루기 어려워지는 경향이 있습니다.
FactoryGirl은 즉시 데이터를 생성하고 필드를 추가하고 제거하는 것이 훨씬 쉽습니다. 또한 픽스쳐를 어떻게 사용하는지 셋업에서 사용할 수 있습니다.
그게 더 명확 해 지나요?
또한 조명기 정의는 전체 응용 프로그램에서 전역 적입니다. 팩토리는 로컬 일 수 있습니다. 따라서 격리 된 테스트 케이스에 특정한 데이터는 단일 글로벌 픽스처 파일이 아닌 특정 컨텍스트에 대한 설정에 있습니다.
이 책 은 더 많은 독서 문제를 원한다면 주제를 아주 잘 다루고 있습니다.
참고 URL : https://stackoverflow.com/questions/5183975/factory-girl-whats-the-purpose
'program story' 카테고리의 다른 글
스크롤하는 동안 항상 머리글을 정적으로 유지하는 방법은 무엇입니까? (0) | 2020.12.05 |
---|---|
소급하여 git repo에 --recursive 추가 (0) | 2020.12.05 |
방향 메타 데이터를 기반으로 JPEG 이미지를 회전하는 방법은 무엇입니까? (0) | 2020.12.05 |
mysql 디스크의 tmp 테이블에 복사 건너 뛰기 (0) | 2020.12.05 |
데이터 프레임에있는 모든 열의 클래스를 가져 오는 방법은 무엇입니까? (0) | 2020.12.05 |