2년 전 · 익명 님의 질문
테스트코드 작성 시 테스트더블 사용 vs 미사용 관련 질문이에요!
안녕하세요. 테스트코드에 관한 공부를 하게 되고 작성을 해보면서 의문이 들어서 질문을 드립니다. 테스트코드에 관한 얘기에서 항상 제목의 주제가 빠질 수 없는 것 같습니다. 둘 다 추구하는 바가 다를 뿐이지 틀리지 않았기 때문에 정답이 없다는 것은 알고 있지만 아직도 혼란스럽네요. 테스트코드에 관한 공부를 하면 항상 나오는게 유닛테스트, 통합테스트 등의 개념인데요. 도메인의 책임을 유닛테스트 하는 것까지는 쉽게 이해가 가는데 서비스 계층을 유닛 테스트 한다는 것이 조금은 이해(?), 수용(?)이 쉽지가 않네요. 서비스 로직은 필연적으로 외부 시스템에 의존할 수 밖에 없다고 생각을 하는데요.(DB, 외부 API 등등) 그러다보니 이런 것을 배제하고 Fake 객체나 Mockito 라이브러리 등을 사용해서 stubbing을 하고 테스트코드를 작성하는 것이 실제 운영 환경에서의 버그 혹은 문제 등을 올바르게 캐치하는 것이 가능한 것인가 하는 궁금증이 생깁니다. 외부 API는 매번 테스트코드를 돌릴 때마다 호출하는 것이 불가능할 수도 있으니 테스트더블을 사용하는 것이 크게 이상하다고 느껴지진 않습니다만, 저는 DB와 관련해서는 아직도 조금 혼란스러운 상황이네요. 실제로 테스트를 다 mocking 처리해서 작성을 해서 DB와 관련한 변경이 있을 때 테스트코드가 그걸 캐치 못 한 경험이 있는데 그 때 이럴거면 테스트코드 왜 짜지? 하는 의문이 들었던 적이 있습니다. 항상 유닛테스트가 중요하다고 다들 말씀하시는데 그러면 그 분들은 테스트코드를 작성하실 때 서비스 로직에서도 DB와 분리된 테스트더블을 사용하는 유닛 테스트를 작성하신다는 의미일까요? 아니면 테스트더블을 사용한 서비스 레이어 유닛 테스트 작성 + 테스트용 DB 혹은 h2 등을 사용하는 통합테스트 모두 다 작성해버리면 그만이니까 이런 고민을 하는게 의미가 없는 것인가? 하는 생각도 한편으로 드네요. 테스트코드를 작성하시는 다른 분들은 이 문제에 관해 어떻게 생각하시는지 궁금합니다 :D
개발자
#테스트코드
#테스트더블
#유닛테스트
#통합테스트
답변 0
댓글 0
조회 64
10달 전 · 최기환 님의 새로운 댓글
안녕하세요 신입 개발자 최기환이라고 합니다! 테스트 코드 관련해서 선배님들의 고견을 여쭙고 싶습니다!
1. 로그인 폼에 대한 테스트를 작성하다 생긴 의문이 있습니다. 현재 테스트에 대해 공부하며 로그인 폼에 대한 테스트 코드를 작성하고 있었습니다. 그러다보니 로그인 폼에 포함되는 이메일 인풋 에서 진행했던 테스트와 유사한 테스트 코드를 반복해서 작성하고 있는걸 발견했습니다. 예를들어 이메일 입력에 유효하지 않은 이메일 입력이 들어오면 인풋 아래에 에러 텍스트가 보여야 한다 라는 테스트를 작성 했습니다. 그런데 로그인 폼에서 이런 로직을 포함하는 통합적인 로직을 테스트 하고 있었습니다. 이런 경우 로그인 폼에서는 이메일 인풋에서 작성한 테스트는 패스하고 좀 더 통합적인 테스트를 작성해야 할까요? 2. TDD를 도입한다면 어떤 테스트 코드부터 작성 되어야 하나요? 예를 들어 위 처럼 로그인 폼에 대한 통합 테스트가 있고 각 인풋 그리고 버튼 에 대한 유닛 테스트가 있다고 생각했을 때 어떤 테스트가 먼저 작성 되어야 하는지 궁금합니다. 통합 테스트를 먼저 작성하게 되면 이 통합적인 기능이 완료 되기 전까지는 계속해서 테스트가 실패 할 텐데 그래도 괜찮은가? 하는 궁금증이 있습니다!
개발자
#테스트코드
#tdd
#react
#javascript
#프론트엔드
답변 1
댓글 1
조회 126
일 년 전 · 코드 스미스 님의 새로운 답변
프론트엔드 테스트에서 단위,통합,E2E 중 하나만 해야한다면 무엇을 해야할까요
안녕하세요. Nextjs를 사용하는 프론트엔드 신입 개발자입니다. 새 플젝을 시작하면서 테스트를 도입하려고 하는데 단위->통합->E2E 전체를 다 하기엔 시간적, 인력적 여유가 없을거같아 셋 중 하나만 채택하기로 결정되었습니다. 이런 경우 어떤 테스트를 진행해야 할까요? 현재 동료와 의견이 갈리고 있습니다. (컴포넌트 UI 테스트는 스토리북을 도입할 예정입니다) 동료의견 : 테스트에 많은 시간 할애할 수 없으니까 통합테스트를 하자. 단위는 작성할 코드가 많아서 시간이 오래걸릴거같다. E2E는 단위,통합 이후 부가적으로 진행되어야 하는거지 'E2E만' 하는건 제대로된 테스트가 안될거같다. 이런측면을 고려했을 땐 '통합테스트'만 하는게 좋을거같다 제 의견 : E2E에 대한 의견은 공감한다. 그런데 테스트에 들어가는 노동력을 최소화 하려면 오히려 단위테스트를 진행해야 할거같다. 통합테스트는 여러 기능이 유기적으로 얽혀있는 테스트 코드를 작성해야하니 오히려 테스트코드 작성에 시간이 더 오래 걸릴수도 있을거같다. 그리고 테스트 과정에서 문제가 발생하더라도 어느 기능이 문제인건지 추적하려면 단위테스트보다 훨씬 시간이 걸릴거같다. 사실 회사마다, 개발자마다 의견이 다른건 알고 있습니다! 하지만 저희가 시니어나 중간급 개발자가 없는 입장이라 조언을 구할곳이 없어 여기에 질문해봅니다. 감사합니다.
개발자
#유닛테스트
#통합테스트
#e2e
#단위테스트
#react
답변 1
댓글 0
조회 173
9달 전 · 이희수 님의 새로운 댓글
Spring Unit test @Value
프로젝트 중 외부에 노출되면 안되는 값이 있어 환경변수로 설정한 후 @Value 어노테이션을 사용해서 값을 사용했습니다. 테스트 코드를 작성하며 통합테스트를 진행하기엔 자원소모가 크다 생각하여 유닛테스트로 테스트 코드를 작성했습니다. 그런데 유닛테스트에서는 @Value에 의존성주입이 안되서 해결방법을 찾고있습니다. 제가 찾아본 해결 방법으로는 1. @SpringBootTest 사용 2. Reflection 사용 3. 생성자를 통한 주입 이렇게 3가지 방법이 있는데 2,3번 모두 테스트코드 내에서 직접 값을 입력해줘야해서 환경변수로 값을 보호하는 이점이 사라진다고 생각이 들었습니다. 이런 상황에선 어떻게 하는게 좋을까요? 환경변수가 들어가는 값을 테스트 할때 유닛테스트를 사용하는 접근방식부터 잘못된걸까요..? 현업에선 이런 민감한 정보를 어떻게 처리하는지 궁금합니다!
개발자
#spring
답변 1
댓글 1
보충이 필요해요 1
조회 1,424
10달 전 · 짹 님의 새로운 답변
프론트엔드, 어떤 것을 테스트해야 할까요?
안녕하세요 프론트엔드 테스트와 관련해서 궁금한 것이 있어서 질문 드립니다! React로 개발된 프로그램입니다. 레거시 코드에 기능을 추가하려고 하다 보니 사이드 이펙트가 빈번하게 발생했고 크게 데이다 보니 테스트를 추가하고 리팩터링도 해서 좀 더 안전하게 기능을 추가하고 싶기도 하고, 가독성이 너무 떨어지는 코드들도 리팩터링하고 싶다고 생각했습니다. 그런데 막상 테스트를 추가하려고 하니까 어떤 부분을 테스트해야 할지 모르겠습니다. 함수에 있는 계산이 맞는지 테스트를 해야 하는 걸까요? 하나의 상품을 클릭하고 장바구니에 담고 주문하기로 넘어갈 때 장바구니 아이템을 확인해서 특정 아이템이 있다면 할인 모달을 띄워주고를 잘 진행하는지 이런 흐름을 테스트해야 하는 걸까요? 둘 다 진행해야 할까요? 그렇다면 어느 것을 먼저 진행해야 시간 대비 효율이 높을까요? 함수들에 대한 테스트 코드를 짠 후 리팩터링을 거쳐야 하는데 암묵적 입/출력이 너무 많기도 하고 코드도 많다 보니 테스트 코드 작성을 시작하기가 두렵습니다. 조언이 필요합니다!
개발자
#react
#test
#jest
#unit-test
#integration-test
답변 3
댓글 1
추천해요 32
조회 1,869
일 년 전 · 달레 님의 답변 업데이트
프론트엔드 테스트시 모킹 범위가 궁금합니다.
안녕하세요 테스트에 대해 궁금한 것이 있어 질문을 작성하게 되었습니다. 리액트를 사용한 프로젝트에 테스트를 도입할 계획입니다. 해당 프로젝트의 주문과 결제 과정까지를 테스트할 수 있는 테스트 코드를 작성하고 싶습니다. 주문 과정까지의 api 호출이 굉장히 많은 상황입니다. 품절, 프로모션, 상품 정보 조회 등등 테스트를 할 때 주문 과정까지에 필요한 "모든 api"를 msw를 사용하여 모킹을 한 후 테스트를 진행해야 하는건가요? 하나 더 궁금한 것은 react에서 유닛테스트를 하게 된다면 각각의 함수를 테스트하게 되는 것인지 궁금합니다. 그렇다면 컴포넌트를 제외한 함수들은 모두 테스트를 하기 위해 커스텀 훅으로 만들거나 컴포넌트 외부에서 정의해야 하는 건가요?
개발자
#react
#test
#unit-test
#mock
답변 1
댓글 0
추천해요 6
조회 511
9달 전 · 익명 님의 새로운 댓글
springboot 테스트코드 작성 방법
테스트코드에 관해 공부하게되었습니다. 정해진 답은 없는 것 같은데 잘못 이해하고 사용하고 있다는 생각이 들어서 질문 글을 올리게 되었습니다. 선배님들의 도움이필요합니다. 유저와 게시글 entity가 있고 게시글을 생성하는 기능을 controller service repository 로 작성했습니다. 1. 단위테스트를 작성할때 mock을 사용하여 Service.save 메서드에 대해 any()와 같이 저장할 객체와 저장된 객체를 제가 직접 지정하다보니 끼워맞춰서 성공을 받아내는 느낌이 강해서 어떻게 사용해야 하는지 궁금합니다. 2. 여러 글들을 읽어보고 고민해보니 Service.duplicate와 같이 이메일 중복체크와 같은 예외가 발생하는 것은 단위테스트로 작성하고 나머지 즉, crud와 같이 DB를 사용해야하는 기능은 controller 통합테스트를 작성해서 확인해야할 것 같은데 맞는 생각인지 궁금합니다. 3. controller 통합테스트에서 update와 같이 의존성이 많이 엮여있을 때 작성방법이 궁금합니다. 제가 생각한 바는 아래와같은데 어디까지 직접생성해주어야 할까요.. - 사용자를 저장하고 게시글도 저장한다. - 게시글을 읽어와 사용자가 게시글의 작성자인지 확인한다 - 게시글을 수정한다 - 수정된 게시글에서 빈 값은 없는지 등 유효성 검사를 하고 게시글을 저장한다 - 다시 게시글을 읽어와서 정상적으로 수정되었는지 확인한다. 아직 부족한것이 많아 단어사용이나 방식이 정말 바보같을 수 있는 부분 양해부탁드립니다. 긴 글 읽어주셔서 감사드립니다. 마지막으로 혹시 참고할 만한 springboot 테스트 코드나 책 또는 강의가 있다면 알려주시면 좋겠습니다. 정말 감사드립니다.
개발자
#spring-boot
#spring
#spring-data
#testcode
#tdd
답변 1
댓글 1
추천해요 19
보충이 필요해요 1
조회 2,262
일 년 전 · 익명 님의 새로운 댓글
프론트엔드 테스트코드 작성과 QA비용 감소
안녕하세요! 프론트엔드 테스트코드를 작성하면 QA 비용을 줄일수있을지 궁금합니다! 저희 회사는 QA팀이 별도로있지않고 다른팀에서 QA를 해주고계십니다. QA를 넘기기전에 철저한 테스트를 진행하려면 개발일정외에 테스트를위한 일정을 할당받아야하는데 매번 최소한으로 받거나 건너뛰는일이 많아서 빠른시간안에 확인해야하다보니 기존 모든기능들을 확인할수없다거나 꼼꼼함을 최우선으로 생각하고 테스트해도 확인해야하는 기능의 범위가 넓어지면 누락되는 부분들이 생깁니다. QA단계에서 발견되는 이슈들이 많아지면 일정도 늘어나게되고 놓치는 이슈들은 고스란히 유저에게 영향이갑니다. 이렇다보니 개발을할때 개발자체보다 테스트에대한 부담이 더 커지고있습니다. 검색을 많이해보았으나 툴을 사용하는 방법이나 이론적인 글들이 많고 사례나 결과에대한 글을 찾기어렵더라구요. 결론적으로 프론트 테스트 작성 시 위와같은 부담과 리스크들을 줄일 수있는지 실제 현업에서 사용하고있는지, 효과가 있는지가 궁금합니다! 경험을 공유해주신다면 큰 도움이될거같습니다!
개발자
#react
#테스트코드
#프론트엔드
답변 2
댓글 2
추천해요 1
조회 538
10달 전 · 박상길 님의 답변 업데이트
프론트엔드 테스트코드 어떻게 하세요?
안녕하세요. 2년차 프론트엔드로 일하고 있는 주니어입니다. 사내에 테스트코드 도입 전 혼자 해보고있는데요, tdd를 하고 계시는 다른 현직자 분들에게 궁금한점이 있습니다. 유닛 테스트 : jest, vitest E2E 테스트: cypress, playwright 위의 도구로 이것저것 해보고있는데 하면서 까다로운 점이 있습니다. 일반 유틸 함수 같은 것은 유닛테스트가 비교적 간단하지만 프론트 엔드이다 보니 컴포넌트 테스트를 하려면 무조건 DOM 으로 불러와야하고, 사이즈가 큰 컴포넌트는 뭔가 잘 되지도 않고, 이럴거면 그냥 E2E만으로 하면 되지 않나 라는 생각도 들고... 실제로는 unit 테스트 도구로 컴포넌트 dom으로 불러와서하고 e2e도 따로 하시나요? 아니면 e2e로만, unit으로만 이렇게 한가지로만 하시나요??
개발자
#프론트엔드
#테스트코드
#tdd
답변 2
댓글 0
보충이 필요해요 1
조회 200
일 년 전 · 김수철 님의 새로운 답변
테스트 코드를 어떻게 작성하시나요?
구현한 기능에 대한 테스트 코드를 작성할 때 제가 만든 것에 대해서 테스트 코드를 작성한다는 게 약간 어색한 것 같습니다 ㅠㅠ 제가 작성하는 테스트 코드에는 이미 제가 고려했던 엣지케이스가 포함되어 있을 거라 제가 놓친 부분을 테스트 코드를 작성해서 발견할 수 있는지 약간 의문이 듭니다. 테스트 코드의 목적이 기능의 결점을 발견하는 것인데, 어떻게 해야 더 좋은 테스트 코드를 작성할 수 있을까요? 다른 분들은 테스트 어떻게 하고 계신지도 궁금합니다 ㅠㅠ !!
개발자
#백엔드
#javascript
#test
답변 6
댓글 5
추천해요 69
조회 5,012
일 년 전 · 달레 님의 답변 업데이트
테스트 코드 모듈 관리는 어떻게 하는게 효율적일까요?
jest 를 사용해 Next 프레임워크에서 테스트 코드를 작성하였는데 테스크 코드에 대한 모듈을 어떤식으로 관리하는게 좋을까요? test 폴더에 모든 test 코드를 관리하자니, 모듈이 많아지게 되었을때 어떤 테스트 코드가 어떤 파일에 해당하는 테스크 코드인지 확인 하기 어렵고 각 모듈이 있는 경로에 test 코드를 각각 관리하자니 모듈을 새로 생성할때마다 똑같은 이름의 테스크 코드 모듈이 생성 되서 어떤 방법이 더 관리하기 편할지 의문입니다 어떤 모듈 관리가 더 효율적일까요? 개인적으로는 후자가 더 편할거같기는 한데 이것이 개인적인 선호도의 차이일까요??
개발자
#jest
#next
답변 2
댓글 1
추천해요 15
조회 932
일 년 전 · Ted 님의 새로운 답변
과거에만 사용한 기술을 이력서에 써도 될까요?
안녕하세요. 이력서 작성 중에 질문이 있어서 질문드립니다. 지금 재직중인 회사에서 2년 전까지만 해도 테스트 코드를 작성했었는데요. 2년 전 전체적인 앱 개편 이후에 기존 테스트 코드가 무용지물이 되면서 모든 테스트 코드를 제거했습니다. 그 이후로는 간단한 유틸 테스트 코드 이외에 실질적인 Unit Test 코드는 작성하지 않았습니다. 이 때 이력서에 테스트 코드를 작성해본 경험 정도만 있다~ 를 쓰고 싶은데, 과거에만 진행한 테스트 코드 작성 내용을 업무 내용에 써도 문제가 없을까요?
개발자
#android
#testcode
#이력서
답변 1
댓글 0
추천해요 1
조회 108
2년 전 · 행복한뉴비 님의 새로운 답변
백엔드 신입 취준 준비할 때 공부 관련 질문이에요!
안녕하세요! 저는 얼마 전까지 작은 스타트업에서 인턴으로 실무 경험(3개월)해보고 다시 취준하고 있는 준비생입니다. 다름 아니라 지금 공부하고 있는데 어떤게 더 좋은 방향일지에 대해서 질문을 드리고자 합니다. 우선 저는 자바, 스프링 계열을 주로 공부하고 있는 백엔드 준비생입니다. 최근 테스트코드에 대한 관심이 많이 생겨서 테스트코드에 관한 공부를 하고 있는 중입니다. 그러다 테스트코드에 관한 강의를 하나 듣게 되었는데, 레이어드 아키텍처의 문제점과 이로 인한 테스트코드 작성 시의 한계 등에 대해서 설명해주시고 이후에 클린 아키텍처(헥사고날 아키텍처)로 바꿔가면서 더 나은 테스트코드를 작성하는 법을 알려주시더라구요. 클린 아키텍처를 처음 배워서 신기했고 왜 그렇게 하는지도 느낌은 알겠는데 제가 하고 있는 고민은 '이걸 지금 신입을 준비하는 내가 하는게 맞나' 라는 의문입니다. 이제 포트폴리오를 좀 더 업그레이드 해보려고 하는데 클린 아키텍처를 적용해서 하는게 신입한테 옳은 방향인가에 대해서 조금 고민이 되네요. 유튜브 개발바닥 채널에서 신입 분들에게 피드백을 주실 때 MSA, DDD, k8s 이런 어려운 기술보다 자바 언어의 심화, SQL 공부, 객체지향스러운 코드 작성 등 항상 기본기에 더 집중하라고 하는 걸 보다보니 이런 의문이 생기는 거 같네요. 클린 아키텍처 적용을 해서 포폴을 만들게 된다면 아무래도 기존 레이어드 아키텍처보다 신경 쓸 게 더 많아지게 되면 괜히 지금 내가 더 집중해야되는 것들을 놓치게 될 수도 있는건가? 하는 의문이 생기네요. 신입으로 취준을 할 때 어떤 방향(어떤 기술에 좀 더 집중할 것인가?)으로 하는게 좋다고 생각하시는지 선배님들의 생각이 궁금합니다! 감사합니다.
개발자
#클린아키텍처
#신입
#취준
#백엔드
답변 1
댓글 0
추천해요 1
조회 262
일 년 전 · 박범수 님의 새로운 답변
테스트 시 쿼리 검사 어떻게 하시나요?
저희 팀이 테스트 코드를 개선하고 있는데. 예전에 e2e 위주로 코드를 짰다가 나중에 일정이 밀리고 하면서 코드 유지보수가 안되더군요..ㅎㅎ; 해서 다시 짜는 중인데. 단위테스트로 코드를 짜보려고 하니, db 쿼리 검증이 고민입니다. 저희 팀은 현재는 raw query를 직접 짜서 프로그램을 작성합니다. dba는 따로 없구요.. 원칙적으로는 db 쿼리 결과값을 스텁 처리 하는게 맞고 그 취지는 이해가 가는데. 코드 로직에서 쿼리가 상당히 중요한 부분을 차지하고, 쿼리를 사람이 짜다보니 오류가 발생할 소지가 있습니다. 그래서 테스트 시 검사를 같이 하고 싶긴 한데요.. 추후에는 orm 전환을 고려하고 있지만 현재 일정상으로 당장 진행하기 어려워, 우선은 현재 기준으로 뭔가 쿼리를 검증하면 좋겠는데.. 방법이 뭐가 있을까요..? 좋은 의견이나 혹시 팀에서 이미 비슷한 고민을 해결하신 분이 계시면 의견을 듣고 싶습니다
개발자
#단위테스트
#백엔드
답변 1
댓글 0
조회 115
일 년 전 · 익명 님의 새로운 댓글
전공자 부트캠프 고민 및 기타 고민
안녕하세요, 스프링 백엔드 기반으로 직무를 준비하는 올해 컴공 4학년 된 학생입니다. 제 질문을 요약해서 말씀드리면 아래 두 가지입니다. 1. 전공자이면서 유료 부트캠프를 수강하셨던 분들은 어떠셨는지 2. 개인의 역량보다 더 높은 일을 받았을 때 해결하지 못할 것 같은 부담감을 어떻게 이겨내셨는지 입니다. 중학교 1학년 때 부터 개발자가 되고 싶다는 마음이 생겼고, 대학교에서도 1-3학년 동안 전부 멋쟁이사자처럼 등 대학생 동아리를 진행하여 해커톤, 기타 프로젝트 등을 만들었었습니다. 더 큰 성장을 하고 싶어서 우아한테크코스에도 지원하였으나 아쉽게도 탈락하였습니다. 대신, 우테코, 사피 등을 수료하신 분에게 감사하게도 함께 프로젝트를 할 기회를 얻어 진행하고 있습니다. 프로젝트를 하며 느끼는 것은, 그동안 제가 해왔던 모든 프로젝트들이 취준용으로는 적합하지 않았다는 것이었습니다. 테스트 코드를 전혀 작성하지 않고, 함께하는 사람들과 코드 리뷰를 하거나 코드 작성에 대한 고민점들을 전부 기록해두지 않았었습니다. 그래서 이번에 열린 네이버 서류에서도 전혀 작성하지 못하는 경험을 하기도 했습니다. 제가 이런 반면, 주변에서는 슬슬 소프트웨어 마에스트로에 합격하거나, 경쟁률이 높은 동아리에 합격하는 등 좋은 소식을 하나씩 받고 있음을 보았습니다. 분명 축하할 일이기는 하지만, 한편으로는 제 노력만 인정되지 못하는 느낌이 들었습니다. 물론 제가 더 노력해야 결과를 얻을 수 있는 유형이겠지만, 그럼에도 인간인지라 그런 생각이 들기도 합니다. 서론이 길었지만, “완전히 처음부터 해보자”라는 생각으로 4-2에 (졸업 기간에 지장이 없도록) 유료 부트캠프 (Flab, 제로베이스 중 고민입니다.) 를 수강할까라는 고민이 있습니다. 전공자이면서 유료 부트캠프를 수강하셨던 분들은 어떠셨는지 궁금합니다. 부트캠프를 수강하고자 하는 이유는, 그동안 제가 고민 없이 기계적으로 코드를 작성했던 것 같고, 여러 방식들이 있는 기술 방법에서 각 방법의 장단점을 알아본 뒤 선택하는 것 등을 하지 않았었는데 이런 것들을 도와줄 수 있을 것 같다고 생각했었습니다. 추가로, 현재 진행중인 프로젝트에서 제 작업이 꽤 오래 걸리는 것을 보면서 더이상 개발이 이전처럼 재밌기만 하기보다는 저로 인해 팀, 또는 회사에 지장이 생기면 안되겠다라는 책임감이 더 느껴지고 있습니다. 이런 불안감이 생겼을 때 어떻게 해결하셨는지 현직자 분들의 의견이 궁금합니다.
개발자
#고민
#부트캠프
#전공자
#컴공
답변 1
댓글 1
추천해요 1
조회 431
통합 테스트 관련해 질문드립니다!
안녕하세요 테스트 코드 관련해 질문드립니다. 통합 테스트에 대한 질문인데요! 단위 테스트들은 정상 작동 하게끔 완성했습니다. 여기서 통합 테스트도 만들어보고 싶은데 어떻게 만들어야 할 지 방향을 못잡겠습니다ㅠㅠ 단위 테스트들을 이어 붙여 테스트하는 것이 통합 테스트인가요? 아니면 다른 방법이 있다면 조언해주시면 감사하겠습니다 :))
개발자
#django
#test
답변 1
댓글 0
추천해요 3
조회 251
테스트 시 DB에 저장되는 데이터는 무엇과 비교해야 하나요?
안녕하세요. Flask로 프로젝트를 진행중인 대학생입니다. 개발한 api를 테스트 하기 위해 unittest 라이브러리로 테스트 코드를 작성하는데 api 호출 결과가 DB에 올바르게 저장됐는지 확인하고 싶을때는 어떻게 해야하나요? 지금까지는 api호출 이후, DB에 저장되는 결과로 예상되는 데이터를 하드코딩해서 테스트 시 api호출 후 DB에 저장된 값과 비교했습니다. 하지만 결과값이 하드코딩 돼있으니 데이터 구조가 변경되면 일일히 값을 변경해줘야 하는 문제 때문에 더 나은 방법이 있지 않을까? 하는 고민이 생겼습니다. +추가 api호출시 내부에서 랜덤한 값을 결정하는 코드의 경우 테스트 환경에서 멱등성을 보장하는 모듈을 추가로 구현해서 사용하는게 좋을까요?
개발자
#test
#testing
#테스트
#유닛테스트
답변 1
댓글 0
추천해요 1
조회 537
2년 전 · 장 대영 님의 새로운 댓글
팀프로젝트 도중 Mock과 관련해서 궁금한 점
안녕하세요, 현재 SpringBoot + Kotlin으로 프로젝트를 진행중인 학생입니다. 팀프로젝트 도중 Mock과 관련해서 궁금한 점이 생겨 여러분의 의견이 듣고싶어 질문드립니다! 현재 팀에서 테스트 코드를 작성하기 위해 Mock을 사용하자는 의견이 있었습니다. 이전에도 잠깐 사용해봤었지만, Mock의 장점은 명확했습니다. 제가 느낀 장점은 '테스트를 다른 의존성으로부터 독립적인 환경을 만들기 때문에 다른 객체에서 생기는 문제를 본 객체에 영향을 주지 않는다.' 그리고, 'Spring에 의존적이지 않으므로 테스트 속도가 빠르다.'라는 장점이 있었습니다. 하지만 단점도 명확했습니다. 모의 객체는 행동의 결과 값을 직접 지정해 줘야 합니다. 다시 말해 Mock객체는 실제 객체가 아닌 개발자가 임의로 지정한 값을 뱉어줄 뿐이므로 이를 잘못 예측한다면 테스트는 성공함에도 불구하고 서비스에서는 에러가 날 수 있습니다. 여기서 의문점이 생겼습니다. '사용자가 환경을 다 정해주는 테스트인데 이 테스트가 의미가 있는 건가?' 혹시 여러분 생각은 어떠신가요? 다양한 의견 부탁드립니다!! 감사합니다.
개발자
#mock
#test
#java
#kotlin
#spring
답변 1
댓글 1
조회 122
React 프로젝트에 테스트 도입
안녕하세요. 회사 React 프로젝트에 테스팅을 도입하고 싶은데 어떻게 시작하면 좋을지 조언을 구하고 싶습니다. 아직 테스트 코드는 없고 제가 동료들을 설득한 뒤 도입해야 합니다. 페이지가 50개 이상되는 프로젝트라서 규모가 꽤 있습니다. 우선 Jest나 react-testing-library부터 시작해보려고 하는데 프론트엔드 테스트는 검색해도 자료가 별로 없고 생각보다 큰 프로젝트에 적용하는건 처음이라 관련 경험을 해보신 선배님들의 다양한 의견을 듣고 싶습니다. - 프론트엔드 테스트를 도입해야 하는이유 (동료 설득) - 큰 프로젝트에서 처음 시도해보면 좋을 테스팅 관련 액션 아이템 등등 조언 부탁드립니다. 감사합니다!
개발자
#react
#testing
#react-testing
답변 1
댓글 0
추천해요 1
조회 160
2년 전 · 커리어리 AI 봇 님의 새로운 답변
리액트 onSuccess에서 await한 로직의 테스트가 계속 fail하는 문제가 있습니다.
리액트 테스팅 라이브러리에서 useMutation의 isLoading과 onSuccess에 따른 컴포넌트 렌더링을 테스트하려고 합니다. isLoading에 의한 컴포넌트까지는 테스트가 잘 되는데, onSuccess일 때 await이 동작하지 않아서 문제가 발생하고 있어요. onSuccess에 console.log를 찍어보면 테스트가 종료되어서 찍히지 않습니다ㅠㅠ 테스트 코드는 onSuccess일 경우의 컴포넌트가 렌더링될 때까지 await을 사용해서 기다리도록 작성되어 있는데, 어떤 문제가 있는 걸까요?
개발자
#react
#testing
#onsuccess
답변 1
댓글 0
조회 98
10달 전 · 디큐 님의 새로운 답변
회사 발전 vs 개인 관심사
솔루션 업체에서 1년 6개월 정도 일한 자바 개발자입니다. 회사가 옛날 기술(자바6)을 주로 사용하고 있는데요. 테스트코드도 없이 일하려니 불편하기도 하고 공부가 될 것 같아서 테스트코드를 작성해보려 합니다. 그런데 올해 하반기에 이직하는 것이 목표라서 인프런 김영한님 강의를 보고 있던 중이라(스프링 완전정복 로드맵 코스) 지금 당장 뭐부터 해야 할지 고민이 됩니다. 지금까지 테스트코드를 다룰 일이 없어 공부부터 해봐야 해서요. 회사 업무도 하면서 둘을 병행하기는 힘들 것 같습니다. 다른 시니어 개발자 분들의 의견이 듣고 싶습니다.
개발자
#이직
#테스트
#업무
답변 1
댓글 0
조회 63
일 년 전 · 익명 님의 질문 업데이트
스프링 테스트코드 작성
스프링 강의를 수강하며, 스프링에 종속되지 않은 테스트 코드가 바람직하다는 내용을 접하게 되었습니다. 당연히 옳은 말이지만, 복잡한 의존 관계를 가진 클래스들을 하나씩 초기화하는 과정이나 레포지토리 클래스에 새로운 함수나 쿼리가 추가될 때마다 그에 따른 로직을 새로 작성하여 테스트해야 하는 점 등이 상당한 어려움으로 다가왔습니다. 그렇기에, 현업에서 진행되는 테스트 코드 작성 과정에서 스프링에 어느 정도 종속적인 코드를 작성하는지, 그 비율은 어느 정도인지 여쭤보고 싶습니다. 이제 막 공부중이라 내용이 이상할지도 모르지만 너그럽게 양해 부탁드리고 팁같은게 있으시다면 공유해주시면 감사하겠습니다!
개발자
#spring
#test
답변 0
댓글 0
추천해요 1
조회 63
일 년 전 · 조용구 님의 답변 업데이트
테스트 코드 작성 단계
저는 리액트로 개발하는 프론트엔드 개발자 입니다. 초기세팅부터 시작하는 새로운 프로젝트를 진행하고 있는데 스토리북으로 컴포넌트 먼저 잡고 있거든요. 초기다보니 기획이 바뀔 가눙성도 있구요.. 스토리북에도 테스트 코드를 작성할 수 있더라구요. 그런데 테스트 코드는 지금 단계에서 하는 것 보다는 어느정도 기획이 고정되고 유지보수하는 단계에서 진행하는 것이라고 생각하는데.. 맞을까요?
개발자
#react
답변 1
댓글 0
조회 225
2년 전 · 익명 님의 새로운 댓글
프론트엔드의 테스트코드 필요할까요?
비지니스 로직등이 담기는 api 같은 기능은 테스트코드를 작성해서 여러 가능성에 대해 대비하는 것에는 받아들이기 머리와 가슴 모두가 이해하고 인정하는데, 무언가 프론트 엔드 부분의 테스트 코드 작성에 있어서 작성하면 좋지만 굳이..라는 느낌이 듭니다. 머리로는 이해하지만 가슴이 이해하지 못하는 느낌이에요. 프론트엔드 테스트 코드가 정말 꼭 필요 할까요..
개발자
#fronted
답변 1
댓글 1
추천해요 1
조회 200
일 년 전 · 익명 님의 질문
vitest toHaveStyle
Input 컴포넌트를 클릭 했을 때, border-color가 제대로 변경되는지 확인하는 테스트 코드를 작성하고 있습니다. Input이 Focus 되었을 때 사진과 같이 border-color가 #3182ce로 변경되는데 테스트 코드 상에서는 에러가 발생합니다. expect($input).toHaveStyle({ borderColor: '', }); 이런 식으로 작성했을 땐 통과가 되는데 #3182ce 값으로 변경됐는지 확인 할 수 있도록 테스트 코드를 작성하는 방법이 있을까요?
개발자
#vitest
답변 0
댓글 0
조회 62
8달 전 · 장성호 님의 새로운 댓글
테스트 코드 작성(spring)
Spring공부를 시작하고 인강을 듣는데 테스트코드를 작성만 하고 설명을 따로 안해주더라구요 Gpt에게 물어보는것이 한계가 있던데 테스트 코드 작성은 어떻게 공부를 시작하면 좋을까요?
개발자
#spring
#java
#백엔드
답변 2
댓글 2
조회 70
jest환경에서의 export * from './*' 이슈
안녕하세요 react native로 테스트코드를 짜다가 막힌 개발자입니다 저는 주로 hooks라는 폴더가 있으면 그 안에 index.ts를 만들어서 이와 같은 레이어의 폴더,파일들을 전부 export * from './*' 하여 실제로 사용할때 import { someHook } from 'hooks' 이렇게 사용하고 있었습니다. 구현 및 동작에는 오랫동안 이슈가 없었지만 이번에 유닛테스트를 도입하면서 jest가 'hooks'라는 놈을 import하는 파일을 테스트할 시 그 안에 모든 파일들을 읽어서 테스트실패가 아닌 jest에러를 계속 만나고 있습니다.. 노가다 mocking을 하여 어느정도 막았지만 테스트할 파일이 아닌 파일에서 계속 에러가 등장해서 babel과 jest의 config를 계속 수정해봤지만 해결이 되지않아 이렇게 자문을 구합니다. 추가로 웹에서도 이러한 export * 을 사용한 index.ts패턴을 사용할 때 성능 등의 이슈가 없는지 궁금합니다!
개발자
#jest
#babel
#javascript
#react-native
답변 1
댓글 0
추천해요 1
보충이 필요해요 1
조회 67
일 년 전 · 익명 님의 새로운 댓글
퇴사한지 반년 넘은 3년차 java 개발자 입니다..
전 회사에서 크롤링으로 혹사당한 후 대상포진까지 걸리고 더는 안되겠다 싶어 퇴사하고 3개월정도 휴식기를 가지고 3개월째 준비하고 있습니다. 총 반년.. 사이드프로젝트도 계속 만들고 있는데 어디까지 손봐야 하는지 감이 잡히지 않습니다.. 코딩테스트는 사실상 준비하지 않아서 과제테스트를 보는 곳으로 생각하고 있는데 3년차로 들어가게 된다면 어떤 것을 해야하는지 혼란합니다. 현재는 spring security, jwt, oauth2 를 이용해 로그인 기능을 구현해 놓은 상태에 docker, aws, jenkins를 이용해 서버에 올리는 정도까지만 진행한 상태입니다.. 찾아보니 redis, kafka 같은 것들도 해야 할 것만 같은데 시간이 없는 상태에서 진행하는게 맞을까요? 테스트코드도 습관이 되어 있지 않아서 혼자서 작성하려니 너무 벅찬 느낌이 듭니다.. 현재하고 있는 것에서 마무리하고 구직을 해도 상관없을지, 더 배우고 채워야 할지 모르겠습니다,,
개발자
#이직
#java
#백앤드
#3년차
답변 5
댓글 6
추천해요 10
조회 3,615
개발자의 업무범위에 대해서
안녕하세요. 작은 중소 솔루션 회사에서 30살이라는 적지 않은 나이에서 2년차 웹 개발자로 일하고 있습니다. 입사 당시 프로그래밍을 독학으로 공부하다보니 Spring이나 웹 MVC패턴이라는 개념도 모른채 그저 servlet과 jsp만으로 제가 만들고 싶은 웹을 다만들어서 jsp 안에 모든 서비스 로직과 화면 렌더링을 주구장창 다때려박으면서 그저 DB와 java 정도만 알고 있던 상태임에도 불구하고 지금의 회사에서 입사하여 입사하자마자 Spring을 공부할 시간을 1달가량 받고 그때부터 제대로 MVC패턴과 Spring 프레임워크를 통해서 간단한 게시판을 만들어낸 것을 이후로 지금은 회사를 다니면서 javascript와 ElasticSearch 등을 많이 접하고 사용하면서 프론트와 백엔드 구분없이 개발을 해왔고 그에 따라서 많은 성장할 수 있었습니다. 이런점에서는 회사에 대해서 정말로 감사하게 생각하고 있습니다. 하지만 8개월쯤부터 아무래도 회사가 성장함에 따라 고객사에 늘어남과 동시 고객지원 및 솔루션 납품 설치 업무를 할일이 많아지게 되었고 자연스럽게 개발업무의 비중이 줄어들고 있습니다. 어떤날은 하루에 1시간도 코드를 못볼 때도 종종있고 한달에 많으면 4~5번을 고객사로 출장을 가게되는게 지금 현상황입니다. 물론 솔루션 납품과 설치를 위해서 리눅스를 알아야하고 회사 제품을 더많이 이해되면서 개발을 진행할 때도 고려하지 못했던 부분들을 고려하게 됨에 따라 생각도 넓어지고 인프라적인 요소들도 많이 알게되어서 배우는 점은 분명하게 있지만서도 계속 이회사를 다닌다고 해서 개발자로 성장할 수 있을까? 라는 고민이 듭니다. 백엔드와 프론트엔드 개발 구분없이 풀스택 개발자 처럼 개발 업무를 진행 해야하는점도 전문성이 결여되는 느낌이 들고 다들 너무나 바쁘다보니 코드 리뷰, 테스트 코드 작성 이런건 전혀이루어지지 않고 회사에서 원하는 화면과 기능 등을 정해진 일정도 없이 고객사 출장이 없으면 없는대로 있으면 있는대로 일정을 알아서 도출해서 완료하고 하는대로 되는대로 이루어지고 있습니다. 백엔드 프론트엔드 구분 없이 개발하거나 코드리뷰나 테스트 코드 이런거는 사실 바라지도 않습니다. 요즘 ChatGPT가 얼마나 좋은가요 제가 작성한 코드에 대해서 ChatGPT를 통해서도 리뷰를 받아볼 수 있고 이러하니 백엔드 프론트엔드 구분없는 것은 오히려 웹개발의 전반적인 과정을 경험할 수 있으니 오히려 좋다고 생각하고 있습니다. 하지만 고객 지원(전화응대, 이메일, 서버 납품및 설치와 정기점검을 위한 출장 및 외근)의 범위가 넓어지고 하다못해 세금계산서 발행 처리와 관련된 문의도 대신 받아서 해당 담당자에게 전달하는 이메일까지도 받습니다. 고객사 출장이 잦아지다보니 어떤날은 1~2시간 코드를 보면 많이 보는날도 종종 생기고 개발업무를 하다가도 전화받고 이메일 확인 때문에 개발자체에 집중하기도 어렵습니다. 개발에만 집중해서 성장하기에도 시간이 부족한데 개발업무는 개발업무대로 주면서 이러한 고객지원업무까지 하려니 회사에 대한 고마움은 사라진지 오래고 정이 떨어졌습니다. 사실 개발업무도 수시로 요구사항이 변하니 원하는 대로 개발해놓고 가져가면 갑자기 말을 바꿔서 다른 방식이나 기능을 언급하면서 일을 2번하게 되는 일도 허다해서 정말 짜증이 너무나서 이제는 제가 알아서 회의가 끝나서 회사의 요구사항을 정리하고 난 뒤 ppt로 화면정의서 같은거를 대충 만들어서 이렇게 개발해서 보여드리면 될까요? 확인받고 진행을 하게 되더군요. 작년만 하더라도 시키지도 않은 일도 아랑서 잘 깔끔하게 하려고하고 회사에 대한 애정이 정말 있었지만 이로인해서인지 몰라도 이제는 출근해서 회의를 하면 기분이 않좋아지고 회의가 하기싫어집니다. 요즘엔 이런식으로 계속 회사를 다니면 개발자로는 물경력이 될 것같다는 생각이 너무나 확고하게 자리잡았습니다. 물론 회사에다가도 이야기는 했습니다. 개발업무외에 고객지원 업무 때문에 개발업무에 집중이 안된다. 고객사나가는 것이 부담스럽다. 첫회사였고 애정이 있던 회사였던지라 섣부르게 퇴사를 고민하는 것이 아닌가라는 생각이 들고 있는데 어떻게 해야할까요?
개발자
#개발자-업무범위
답변 1
댓글 1
추천해요 1
조회 677
일 년 전 · 익명 님의 새로운 댓글
Java 테스트 코드
안냥하세요 테스트코드를 작성하고 싶습니다 Given When Then에 대한 과정은 이해했는데 어떤 단위로 테스트가 필요한지 감이 안옵니다 ㅠ 하나의 API에서 controller 1개, service 1개 이런식으로 독립적으로 테스트 코드를 작성하는걸까여??
개발자
#java
#spring
답변 1
댓글 3
조회 123