Faker를 사용하는 것은 안티 패턴입니다.
3370 단어 rubytestingprogramming
우선, Faker 테스트는 비결정적입니다. 실행 - 충돌, 다시 실행 - 통과. 이러한 불안정한 테스트는 디버그하기가 매우 어렵고 CI에서 성가신 일입니다.
둘째, 무작위 데이터는 테스트 속도를 저하시킵니다. 특히 공장에서: Faker에서
sequence { ... }
로 전환하면 테스트 스위트가 12% 가속화되는 프로젝트에 참여했습니다.세 번째로 Faker의 남용은 테스트에서 코드 중복으로 이어집니다. 예를 들어 사용자의 이니셜을 반환하는 테스트 메서드를 살펴보세요.
it "returns initials"
user = described_class.new(name: Faker::Name.name)
expected = user.name
.upcase
.split(" ")
.map { |part| part[0] }
.join("")
expect(user.initials).to eq(expected)
end
이것은 이해할 수 없고 혼란스러운 테스트입니다.
#initials
메서드가 변경되면 변경 사항이 테스트에서도 복제되어야 합니다. 더 나은 방법은 다음과 같이 작성하는 것입니다.it "returns initials"
user = described_class.new(name: "Daniel Craig Jones")
expect(user.initials).to eq("DCJ")
end
테스트 도구 모음에서 Faker를 자세히 살펴볼 것을 제안합니다. 정말 필요한가요?
이 주제에 대한 추가 정보:
Reference
이 문제에 관하여(Faker를 사용하는 것은 안티 패턴입니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vasily/using-faker-is-anti-pattern-1jgl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)