44,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
_isEndCalled, toBeTruthy()의 역할
_isEndCalled, toBeTruthy()이 어떤 기능을 하는지 알 수 있을까요?? export const getProducts = async (req, res, next) => { await Product.find({}); return res.status(201); }; 이와 같이 res.status()로만 끝나는 형태여도 test case가 통과하고 강의에서 나온것처럼 send를 붙여도 통과하고 json 형태로 보내줘도 통과합니다. 어떤 테스트를 수행하는 역할인가요??
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
error message
const rejectedPromise = Promise.reject(errorMessage); Product.create.mockReturnValue(rejectedPromise); error message를 그냥 rejectPromise에 할당하지 않고 Promise 형태로 만들어서 할당하는 이유가 무엇인가요? Product.create.mockReturnValue(newProduct); 성공인 경우에는 Promise를 쓰지 않고 그냥 할당했는데 말이죠. 감사합니다!
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
라우터 라우트
안녕하세요. 한가지 헷갈리는게 있어 질문 드립니다. 이때까지 router.get("/", (req,res) => {}); router.get() <- 라우터(이동시켜주는 아이) "/" <- 라우트(경로) () => {} <- 컨트롤러 라고 생각하고 있었는데요. 폴더명을 지을때 routes보단 routers가 맞지 않나 싶을때가 있는데 대부분 routes로 짓는것 같습니다. 제가 이해한 부분이 틀렸을까요 ?
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
기타 테스트
안녕하세요~ 강의 끝까지 완강하였는데 유틸리티 함수 같은경우는 단위테스트만 진행하고 기타 메시지 큐, 스케쥴러와 같은 부분은 단위 테스트 + 슈퍼테스트 모두 진행하나요~? 테스트를 진행하는 방법이 너무많고 테스트를 어느 수준까지 진행하는게 좋은지 정보가 조금씩 달라서요 정답이 없는 질문이지만 강사님 의견이 궁금합니다.
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
테스트 케이스 신뢰도
안녕하세요, 강의 잘보고 있습니다. 통합테스트 부분에서 리턴된 데이터가 배열인지 그리고 필수값으로 지정한 부분들이 있는지 정도 테스트를 하는거 같은데요 관련해서 의문점이 있습니다. 1. toBeDefine 을 이용해서 체크할때, 0번째 데이터를 임의로 체크하는데 배열 전체에 대해서 확인해야 하는게 아닌가요?2. 때에따라서 테스트 케이스에서 데이터가 없는 경우에 에러가 날거 같은데 ( 생성되기전 ), 짧은 지식으로 테스트는 데이터베이스나 기타 환경에 영향을 받으면 안된다고 알고 있는데 단위 테스트에 한정된 이야기인가요?
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
마지막 delete id 찾을때
위 아래 테스트가 다른 점이 200을 주냐 404을 주냐만 다른건가요?? 이 부분에는 firstProduct._id가 아닌 존재하지않는 id를 넣어주는게 맞지 않나요...? "DELETE id doesnt exist /api/products/:productId"
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
강사님 답답합니다...
firstProduct._id가 갑자기 왜 빈값이 되는지 이해가 안갑니다..
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
update id 가 db에 없을때
여기서도 404가 아닌 200과 에러메시지가 리턴됩니다. 왜 그런건지요? text: '{"message":"Cast to ObjectId failed for value \\"6029a336a38ecb59d6b9xxxx\\" at path \\"_id\\" for model \\"Product\\""}', body: { message: 'Cast to ObjectId failed for value "6029a336a38ecb59d6b9xxxx" at path "_id" for model "Product"' },
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
500에러가 아닌 200이 리턴되네요
{name: phone}만 했을때요.. 스펙이 바뀐걸까요 제 코드가 잘못된걸까요?
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
toHaveBeenCalledWith
toHaveBeenCalledWith 와 toBecalledWith의 차이는 뭔가요?
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
제가 보통 사용할때는 자바스크립트를 UI위주로 많이 사용하는데
UI 적인 부분도 TDD를 하고 싶은데 TDD가 가능할까요? 아니면 제가 TDD를 잘몰라서 너무 넓은 범위를 적용하려고 하는걸까요?
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
/api/products/osakdokasdk 의 500을 반환하는 경우
/api/products/osakdokasdk 같은 형식으로 입력이되면 500을 반환한다고 하셨는데, 404와 500도 같이 테스트를 하려면 어떻게 해야 하나요? 아래 코드를 어떻게 수정해야할까요? it("GET id does not exist /api/products/:ProductId", async ()=>{ const response = await request(app).get('/api/products/oaskdokasdk'); expect(response.statusCode).toBe(404); }) -------------------- exports.getProductById = async (req, res, next) => { try { const product = await productModel.findById(req.params.productId); if (product) { res.status(200).json(product); } else { res.status(404).send(); } } catch (error) { console.log(error); next(error); } };
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
jsdom
안녕하세요. 질문이 있습니다. jsdom -> node로 환경셋팅을 바꾸면 된다고 하셨는데 mongoose에서 dom이라는 것을 사용할일이 있는건가요 ? jsdom이 node에서 테스팅할때 어떤 역할을 하는것인지 궁금합니다.. jsdom = 브라우저에서 제공하는 DOM이나 web api를 전부 제공하는 아이인가요?
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
Model Class, Model Instance
테스팅 수업인데 다른질문을 남기게 되었습니다..ㅎㅎ Model class = mongoose.model() Model instance = new mongoose.Schema() 를 의미하는 것인가요 ? 잘 이해가 가지 않습니다 ㅠ
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
error
안녕하세요 :) 이 error가 나는 경우는 어떻게 하면 되나요? A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks.
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
문의드립니다
productModel.create... productController.createProduct(req, res, next)... 이 둘의 순서를 바꾸어도 괜찮은가요?
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
궁금합니다!
안녕하세요? productModel.create.mockReturnValue(rejectedPromise)가 필요한 이유는 productModel.create이 에러를 만드는 경우라는 것을 알려주기 위해서인가요? 감사합니다!
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
아직 Response가 오지않은 (Pending) 한 상태?
혹시 아직 Response가 도착하지 않은 상태로 이해해도 괜찮을까요? ^^
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
4:11
단위 테스트이기 때문에 productModel에 직접 영향을 받으면 안된다는 말씀은 productModel을 실제로 호출하면 안된다는 말씀으로 이해하면 될까요? 감사합니다~
- 미해결따라하며 배우는 TDD 개발 [2023.11 업데이트]
expect(productModel.create).toBeCalled(newProduct)
newProduct 대신에 req.body를 넣어줘도 괜찮은가요? ^^