inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

toHaveTextContent 에러

미해결

따라하며 배우는 리액트 테스트 [2023.11 업데이트]

안녕하세요. 'context wrapper 추가로 에러 제거하기' 강의에서 발생한 에러가 해결되지 않아 질문 드립니다. https://www.inflearn.com/questions/736423/tohavetextcontent-%EC%97%90%EC%84%9C-%EC%97%90%EB%9F%AC%EA%B0%80-%EC%9E%90%EA%BE%B8-%EB%82%98%EB%8A%94%EB%8D%B0-%EC%95%84%EB%AC%B4%EB%A6%AC-%EC%B0%BE%EC%95%84%EB%8F%84-%EC%9E%98-%EB%AA%A8%EB%A5%B4%EA%B2%A0%EC%8A%B5%EB%8B%88%EB%8B%A4 이 글과 동일한 에러가 계속 발생하는데, 이 질문자분이 답글로 남겨주신 코드로 수정해보아도 해결이 되지 않습니다. 어디서 문제가 발생한 건지 강의를 다시 보고 또 봐도 찾기가 어려워 깃허브 주소 남깁니다. 감사합니다. ● update product's total when products change expect(element).toHaveTextContent() Expected element to have text content: 1000 Received: 총 가격: 0 16 | userEvent.clear(americaInput); 17 | userEvent.type(americaInput, "1"); > 18 | expect(productsTotal).toHaveTextContent("1000"); | ^ 19 | }); 20 | at Object.<anonymous> (src/pages/OrderPage/test/calculate.test.js:18:25) https://github.com/daeunleeeee/react-shop-test

  • react
  • 웹앱
  • React-Context
  • jest
  • 소프트웨어-테스트
pt_daeun.lee 댓글 1 좋아요 0 조회수 475

TDD - Green, Red, Refactor

해결됨

부트캠프에서 알려주지 않는 것들 (리액트) 1편

안녕하세요. TDD의 Green, Red, Refactor 파트(9:40)에서 리팩터링을 진행하시면서 onPageNumberClick 함수를 useCallback으로 감싸서 렌더링이 다시 될때 이 함수가 두번 생성되지 않도록 한다고 하셨는데 이 부분이 잘 이해가 가지 않아서요. 설명해주신걸로 유추해보면 useCallback으로 감싸면 함수가 한번만 생성되는 것 같은데 useCallback을 사용했을때와 사용하지 않았을 때 차이에 대해서 조금 더 설명해주실 수 있을까요?

  • react
  • tdd
  • React-Context
  • jest
  • 소프트웨어-테스트
  • usecallback
해피페이스 댓글 2 좋아요 1 조회수 691

클래스형과 함수형 컴포넌트

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

안녕하세요 선생님 현재 섹션2까지 수강하였는데요 이후에는 전부 함수형 컴포넌트로 강의 해주시는 건가요? 클래스형 컴포넌트 기초적 인 내용 학습 병행해야 할지 고민이되서 질문드립니다!

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
댓글 1 좋아요 0 조회수 365

수정 시 전체 수정되는 오류 OTL

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

복습하면서 강의를 보지 않고 저 혼자 다시 만들어보고 있는 중입니다. 그래서 드래그 라이브러리나 React.memo 같은 기능은 우선 차치하고 CRUD 기능만 해보려고 하는데요. edit을 위한 💬 버튼을 누를 경우 다른 할 일들도 editing... 으로 전체 수정되는 오류가 있습니다 ㅠㅠ 어디가 꼬였는지 알 수 없어 몇 시간 째 헤매고 있는데, 어느 부분이 문제인지 알 수 있을까요? Lists 컴포넌트에서 문제가 발생하고 있습니다. App.js import React, { useState } from "react"; import Form from "./components/Form"; import Lists from "./components/Lists"; function App() { const today = new Date(); const month = today.getMonth() + 1; const day = today.getDate(); const [value, setValue] = useState(""); const [todoData, setTodoData] = useState([]); const handleSubmit = (event) => { event.preventDefault(); let newTodo = { id: Date.now(), title: value, done: false, }; setTodoData([...todoData, newTodo]); setValue(""); }; const handleClear = () => { setTodoData([]); }; return ( <div className="flex justify-center items-center min-h-screen w-screen bg-purple-100"> <div className="w-full lg:max-w-lg lg:max-w-3/4 p-6 m-4 bg-white rounded shadow"> <div className="flex justify-between pb-2"> <h1> 📌 {month}월 {day}일 오늘의 할 일 </h1> <button onClick={handleClear}>🧹 전체 삭제</button> </div> <Lists todoData={todoData} setTodoData={setTodoData} /> <Form handleSubmit={handleSubmit} value={value} setValue={setValue} /> </div> </div> ); } export default App; Lists.js import React, { useState } from "react"; const Lists = ({ todoData, setTodoData, title, id }) => { const [isEditing, setIsEditing] = useState(false); const [editedTitle, setEditedTitle] = useState(title); const handleDelete = (id) => { let newTodoData = todoData.filter((data) => data.id !== id); setTodoData(newTodoData); }; const handleDone = (id) => { let newTodoData = todoData.map((data) => { if (data.id === id) { data.done = !data.done; } return data; }); setTodoData(newTodoData); }; if (isEditing) { return <div>Editing...</div>; } else { return ( <div> {todoData.map((data) => ( <div className="flex py-2 my-2 justify-between items-center border rounded bg-purple-50" key={data.id} > <div className="mr-2 p-2"> <input className="mr-2" type="checkbox" defaultChecked={data.done} onChange={() => handleDone(data.id)} ></input> <span className={data.done ? "line-through" : undefined}> {data.title} </span> </div> <div className="pr-2"> <button className="mr-2" onClick={() => setIsEditing(true)}> 💬 //오류 발생 </button> <button className="mr-2" onClick={() => handleDelete(id)}> ❌ </button> </div> </div> ))} </div> ); } }; export default Lists; Form.js import React from "react"; const Form = ({ handleSubmit, value, setValue }) => { const handleChange = (event) => { setValue(event.target.value); }; return ( <div> <form className="flex justify-between pt-2" onSubmit={handleSubmit}> <input className="p-2 mr-2 border-2 rounded shadow w-full" type="text" placeholder="할 일을 입력하세요" value={value} onChange={handleChange} /> <input className="p-2 border-2 rounded bg-purple-200 text-white hover:bg-purple-300" type="submit" value="입력" /> </form> </div> ); }; export default Form;

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
갈길toofar 댓글 1 좋아요 0 조회수 340

IoC != DI에 대한 질문입니다.

해결됨

Java/Spring 주니어 개발자를 위한 오답노트

안녕하세요,선생님 습하고 더운 여름 몸 건강히 계시길 바랍니다. 강의를 듣는 도중 궁금한 부분이 생겼습니다. DIP와 IoC가 다르다고 말씀하신 부분이, DIP가 의존성 주입을 역전함으로써 제어의 흐름을 바꾸지만 IoC가 의존성을 주입해주는 것은 아니어서 그렇다고 이해되는데 제대로 이해한 게 맞을까요? ㅜㅜ 또, Open-Closed 법칙을 설명해주시는 1:32초 부분에 수정에는 열려있어야 한다는 말씀을 하셨는데 수정 시 많은 메소드 혹은 클래스를 수정해야 하는 경우가 수정에 열려있는 것이 아닌지요 ㅜㅜ... 제가 잘 모르다보니 헷갈려서 질문드립니다!

  • java
  • spring
  • 객체지향
  • 소프트웨어-테스트
nsonestudy2 댓글 2 좋아요 1 조회수 857

git 배포!!!!!!

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

동일한 질문이 있는데 답변을 이해하지 못해서 질문합니다. 저는 [깃허브아이디]/상위폴더/하위폴더/ 하위폴더2 에 지금까지 만든 넷플릭스 파일들이 있습니다. 이 경우에 package.json의 homepage 부분과 index.js의 basename은 어떻게 설정해야 하는 것인지요? 아까까지 전체 주소(하위폴더2까지) homepage, basename을 작성하여 배포했는데 완성된 주소는 상위폴더까지만 적혀 있습니다. 지금은 [깃허브아이디]. github.io/[상위폴더]/로 다시 배포했는데 상위폴더 안의 Read.me만 나오고 있습니다. (캐시 삭제 및 20분 정도 기다림) ㅠㅠ 왜 이러는지 알고 싶습니다.

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
갈길toofar 댓글 1 좋아요 0 조회수 581

배너 Iframe 디자인 시 가상 요소

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

여기서 &를 써서 스타일을 추가하는 이유가 무엇인가요? 그냥 위에 있는 Iframe에 적용하면 안되는 건가요? 이 부분을 Iframe에 포함시키니 오류가 나서 왜인지 궁금합니다. const Iframe = styled.iframe` width: 100%; height: 100%; z-index: -1; opacity: 0.65; border: none; &: :after { content: ""; position: absolute; top: 0; left: 0; width: 100% height: 100% } `;

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
갈길toofar 댓글 1 좋아요 0 조회수 574

axios 401 오류

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

axios 코드입니다. import axios from "axios"; const instance = axios.create({ baseURL: "https://api.themoviedb.org/3", params: { api_key: "895e2a24f997d16a2490bcfddde450c28", language: "ko-kr", }, }); export default instance; requests 코드입니다. const requests = { fetchNowPlaying: "movie/now_playing", fetchNetflixOriginals: "/discover/tv?with_networks=213", fetchTrending: "/trending/all/week", fetchTopRated: "/movie/top_rated", fetchActionMoives: "/discover/movie?with_genres=28", fetchComedyMovies: "/discover/movies?with_genres=35", fetchHorrorMovies: "/discover/movies?with_genres=27", fetchRomanceMovies: "/discover/movies?with_genres=10749", fetchDocumentarues: "/discover/movies?with_genres=99", }; export default requests; App 코드입니다. import "./App.css"; import Nav from "./components/Nav"; import Banner from "./components/Banner"; function App() { return ( <div className="App"> <Nav /> <Banner /> </div> ); } export default App; Banner 코드입니다. import axios from "../api/axios"; import React, { useState, useEffect } from "react"; import requests from "../api/requests"; function Banner() { const [movie, setMovie] = useState([]); useEffect(() => { fetchData(); }, []); const fetchData = async () => { // 현재 상영중인 여러 편의 영화 정보 가져오기 const request = await axios.get(requests.fetchNowPlaying); // 여러 편의 영화 중 하나의 영화 ID 가져오기 const movieId = request.data.results[ Math.floor(Math.random() * request.data.results.length) ].id; // 특정 영화의 상세 정보 가져오기 const results = await axios.get(`movie/${movieId}`, { params: { append_to_response: "videos" }, }); console.log("results", results); console.log(movieId); }; return <div></div>; } export default Banner; 확인해봤을 때는 틀린 부분이 없는데 아래와 같은 오류가 발생합니다. ㅠㅠ 어디 잘못 작성한 게 있을까요?

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
갈길toofar 댓글 1 좋아요 0 조회수 691

마이바티스와 테스트 코드

해결됨

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강사님 강의 너무 잘 듣고있습니다. 회사에서 Mybatis로 개발 중인데 테스트 코드 작성에 어려움이 있어 질문 드립니다. JPA의 경우 CRUD가 기본적으로 구현되어 있지만, Mybatis의 경우 xml(또는 인터페이스)에 정의된 메서드를 사용하기 때문에 테스트 코드 작성이 어렵더군요.. 만약 Money 테이블이 있고, 해당 Repository에 Select 코드가 없는 경우 어떻게 검증을 해야 좋을까요? 테스트를 위해 xml이나 인터페이스에 새로운 코드를 작성하는 것은 좋은 방법이 아닌 것 같고, Jdbc Template를 이용해봤는데 이 경우에는 데이터가 롤백되지 않는 등의 문제가 있었습니다.( 아마 잘못 사용해서 그런 것 같기도 합니다..) Repository 부분을 Mock으로 Stub하여 테스트를 진행하는 것도 생각해 보았습니다. 이 경우에는 Repository 쿼리를 수정할 때마다 Service에 정의된 Stub도 그에 맞게 계속 수정해야 하는 문제가 있어서 이 방법도 적합하지 않다고 생각이 들었습니다..(이 케이스도 A,B 각각 모듈 단위의 테스트는 성공하나 결합하여 테스트할 때 실패하는 경우라고 볼 수 있을까요?) 회사가 테스트 코드를 작성하는 문화는 아니어서 물어볼 사람이 없어 질문 남깁니다.. 좋은 강의 감사하합니다. 앞으로도 좋은 강의 기대하겠습니다!!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
endeavor 댓글 1 좋아요 4 조회수 1097

ProductService의 updateProduct 로직 질문입니다.

미해결

실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD

updateProduct 로직을 보면, 맨 첫줄에 productPort.getProduct로 조회를 해온 뒤 product.update(~~~)로 변경을 하면, 변경 감지가 일어날텐데 굳이 save를 호출하신 이유가 뭐에용??

  • tdd
  • spring-boot
  • pojo
  • 소프트웨어-테스트
  • api
ldy_1204 댓글 2 좋아요 0 조회수 579

도메인 테스트 코드 작성을 해봤습니다.

해결됨

Practical Testing: 실용적인 테스트 가이드

도메인 //Order 도메인 @Entity @Table(name = "orders") @Getter @Setter @NoArgsConstructor public class Order { @Enumerated(EnumType.STRING) private OrderStatus status; @OneToMany(mappedBy = "order",cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); /* 주문 취소 */ public void cancel(){ this.setStatus(OrderStatus.CANCEL); /** 재고 원복 */ for (OrderItem orderItem : orderItems) { orderItem.cancel(); } } } //OrderItem public class OrderItem { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "item_id") private Item item; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; public void cancel() { getItem().addStock(count); // 재고수량을 늘려준다. } } //Item public class Item { private int stockQuantity; public void addStock(int quantity) { this.stockQuantity += quantity; } } 불필요한 코드는 제거 했습니다. 테스트 코드 @DisplayName("주문을 생성하고, 주문 취소시 주문 취소로 상태를 변경하고, 감소된 상품 재고를 수량을 추가한다.") @Test void cancelOrder(){ //given OrderItem orderItemMock1 = Mockito.mock(OrderItem.class); OrderItem orderItemMock2 = Mockito.mock(OrderItem.class); BDDMockito.doNothing().when(orderItemMock1).cancel(); BDDMockito.doNothing().when(orderItemMock2).cancel(); //OrderItem 가변인자는 내부에서 List로 보관 Order order = Order.createOrder(orderItemMock1,orderItemMock2); //when order.cancel(); //then assertThat(order.getStatus()).isEqualByComparingTo(OrderStatus.CANCEL); Mockito.verify(orderItemMock1,Mockito.times(1)).cancel(); Mockito.verify(orderItemMock2,Mockito.times(1)).cancel(); } Order 도메인의 cancel() 을 테스트 코드를 작성해야한다고 할때 cancel 호출로 변경된 상태(enum)와 내부 List<OrderItem> 필드에 하나씩 취소 요청을 할때 Mock으로 OrderItem 도메인을 만들고 호출을 했는지만 검사를 했습니다. Mock 객체를 만드니까 간단한 단위테스트 인데도 속도가 많이 느려지더라구요 이런 경우에 Order.cancle 로직에 대한 테스트이기 때문에 나머지는 Mock으로 처리 관련된 OrderItem.cancle(),Item.addStock()은 별도 단위테스트로 검증했기때문에 추가 검증이 필요없다. Order.cancle 로직에 대한 테스트이지만, OrderItem.cancle(),Item.addStock() 테스트 검증이 끝났다고 해도 비즈니스 계층 통합테스트 느낌으로 given에서 데이터를 준비하고 연관된 데이터를 전부 검증한다. 1번으로 할경우 테스트 목적은 한눈에 들어오지만 2번으로 할경우 이 로직이 어디까지 관련이 되어있는지 테스트 코드로 알수 있을거같아서 강사님이 말씀하신 테스트를 문서처럼 사용할 수 있는거같습니다. 고민을 해보니 Order.cancel() 은 서비스 계층에서 호출을 할텐데 1번으로 테스트를 하고, 서비스 계층에서 통합 테스트를 하는게 맞을까요? 더 나은 방법이 있을까요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
티벳로보 댓글 1 좋아요 0 조회수 959

Persistence Layer(2) 강의 질문있습니다.

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요. Persistence Layer(2) 강의를 수강 중에 질문이 있습니다. 먼저, 저는 h2 database 대신 mysql을 사용하기로 해서, 아래와 같이 application.yml 파일을 작성했습니다. 그리고 build.gradle에 mysql import 부분 역시 등록하였습니다. spring: profiles: default: local datasource: url: jdbc:mysql://localhost:3306/testing?useSSL=false&characterEncoding=UTF-8 username: root password: [생략] driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: none sql: init: mode: always --- spring: config: activate: on-profile: local jpa: hibernate: ddl-auto: create show-sql: true properties: hibernate: format_sql: true defer-datasource-initialization: true # (2.5~) Hibernate 초기화 이후 data.sql 실행 # h2: # console: # enabled: true --- spring: config: activate: on-profile: test jpa: hibernate: ddl-auto: create show-sql: true properties: hibernate: format_sql: true sql: init: mode: never 그리고 ProductRepositoryTest를 실행한 결과, @SpringBootTest 어노테이션 상에서는 테스트가 정상적으로 작동이 되나, @DataJpaTest를 사용하면 아래와 같은 오류가 발생합니다. Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Failed to replace DataSource with an embedded database for tests. If you want an embedded database please put a supported one on the classpath or tune the replace attribute of @AutoConfigureTestDatabase. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Failed to replace DataSource with an embedded database for tests. If you want an embedded database please put a supported one on the classpath or tune the replace attribute of @AutoConfigureTestDatabase. 제 생각에는, application.yml 파일 설정에서 제가 잘못 하고 있는 것 같은데요, 혹시 어느 부분을 제가 놓치고 있는지 알고 싶습니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
km6914 댓글 2 좋아요 1 조회수 782

nextjs 폴더구조 다르신분(pages/, styles/ 없는분)

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

혹시나 모르실분들이 있을거 같아서 남깁니다. 영상에 보이는 구조로 받으시려면 npx create-next-app@12.1.0 --typescript ./ 로 하면됩니다. 꽤나 당황했네요 ㅎㅎ

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
22gas 댓글 1 좋아요 4 조회수 3315

인증 관련 테스트 할 때 질문드립니다.

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 수업 내용과는 관련 없지만 테스트 코드를 짤 때 벽을 만나서 물어볼 곳이 마땅하지 않아 이 곳에 질문을 하게 됐습니다. 문제 있다면 바로 삭제하도록 하겠습니다. 프로젝트를 진행하고 있는데 Spring Security를 적용해서 하고 있습니다. Service 쪽에서 Authentication 객체를 생성을 하고 JWT 를 만들어 줄 때 Authentication authentication = authenticationManagerBuilder.getObject() .authenticate(new UsernamePasswordAuthenticationToken(username, password)); 이렇게 생성을 하고 있습니다. 그래서 테스트코드를 짤 때 @Mock private AuthenticationManagerBuilder authenticationManagerBuilder; 이런 식으로 Mocking 해주고 Authentication authentication = mock(Authentication.class); given(authenticationManagerBuilder.getObject().authenticate(any())).willReturn(authentication); 이런 식으로 Stubbing 해주고 있는데요. java.lang.NullPointerException: Cannot invoke "java.util.concurrent.atomic.AtomicBoolean.get()" because "this.building" is null 이런 에러가 나타나고 있습니다. AuthenticationManagerBuilder 를 좀 살펴보니 타고타고 가다보면 AbstractSecurityBuilder 라는 것을 상속하고 있더군요. AbstractSecurityBuilder를 보면 private AtomicBoolean building = new AtomicBoolean(); 이런 필드가 있습니다. 에러에서 나온 building이 이걸 말하는 것 같습니다. 여기 나오는 building이 null 이어서 public final O getObject() { if (!this.building.get()) { throw new IllegalStateException("This object has not been built"); } return this.object; } 여기서 if 조건문을 탈 때 this.building이 null이기 때문에 NPE가 발생하는 것 같습니다. AuthenticationManagerBuilder를 Mocking을 해서 이런 결과가 생기는것인가 하는 의심이 들고 있는 상황입니다. 혹시 이런 경우에는 어떤 식으로 Mocking을 하고 Stubbing을 해줘야 테스트가 통과될 지 궁금합니다. 구글링해도 자료가 거의 없고 gpt도 계속 이상한 말을 반복해서..ㅠㅠ 어쩔 수 없이 여기에 질문 올려봅니다. 도움 주시면 감사하겠습니다..!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
비가싫어요 댓글 2 좋아요 0 조회수 1301

styled-components 설치 에러

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

styled-components version 6 이후로 강의에 나오는 npm install styled-components --save 명령어로 설치하면 에러가 발생해요 npm install styled-components@5.3.10 으로 5버전대로 설치했습니다 //Use V5, npm install styled-components@5.3.10 //Use yarn yarn install styled-components //To use the beta version npm install styled-components@latest

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
info 댓글 1 좋아요 1 조회수 1072

섹션 7에서 완벽하게 제어하기 파트에서 질문이 있습니다!

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. LocalDateTime. now(), 즉 현재 시간과 관련된 기능의 사용을 지양하자라고 말씀해주셨습니다! 이 뜻이 현재시간과 관련된 요구사항이 넘어왔을 때 해당 요구사항을 현재시간과 관련 없이 다른 방법으로 풀어보자 라는 의미일까요? 아니면 다른 기술적인 방법을 말씀하시는 걸까요~? 기술적인 방법이 있는 것이라면 어떤 방법이 있을지 궁금합니다!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
khmin3011 댓글 2 좋아요 1 조회수 438

Cookie의 경우 RestDocs로 어떻게 해야할까요?

미해결

Practical Testing: 실용적인 테스트 가이드

강의 너무 잘듣고 사이드 프로젝트에 적용하고 있는데 cookie의 경우 restdocs로 어떻게 추출해야되는지 모르겠습니다.. 공식 문서에서는 requestCookies() 가 나와있는데 현재 저의 프로젝트에서는 적용이 안되네요. 저는 SpringBoot 2.6.12 버전이며 java 17, management의 경우 1.0.14 버전입니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
댓글 2 좋아요 1 조회수 1090

msw안돼는사람

미해결

따라하며 배우는 리액트 테스트 [2023.11 업데이트]

https://junhyunny.github.io/react/jest/module-import-error-on-jest/ 여기랑 https://velog.io/@noyo0123/jest-test%EC%97%90%EC%84%9C-import-%EB%A5%BC-%EB%AA%BB-%EC%93%B0%EB%84%A4%EC%9A%94-pik230v1hp 이거참고하세요

  • react
  • 웹앱
  • React-Context
  • jest
  • 소프트웨어-테스트
기쁜 도미 댓글 1 좋아요 0 조회수 607

Presentation Layer 테스트 (2) 질문있습니다.

해결됨

Practical Testing: 실용적인 테스트 가이드

Presentation Layer 테스트 (2) 58:57에 모듈을 분리해도 사실은 서비스 계층에서 BeanValidation을 책임상 하지 않는데 의존하고 있기때문에 의존성을 계속 추가해야 한다. 이렇게 말씀해주셨는데 컨트롤러에서 전부 검증을 책임지지 않고 특수 형태 Validation은 서비스 레이어나 도매인 객체 생성할때 검증한다고 하셨는데 검증 로직을 스프링 AOP,스프링 Assert 로 구현을하면 서비스 계층이 스프링 프레임워크를 많이 의존하게 되는거 같아서요 강사님은 어떤식으로 검증로직을 선호하시고, 선호하시는 이유도 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
티벳로보 댓글 1 좋아요 6 조회수 795

강의 자료 링크

미해결

모든 개발자의 실무를 위한 올인원 기본기 클래스

강의 자료 링크가 동작이 안되는데 확인 부탁 드립니다!

  • python
  • git
  • docker
  • tdd
  • 객체지향
  • 아키텍처
  • ci/cd
  • 동시성
  • 소프트웨어-테스트
최일규 댓글 1 좋아요 0 조회수 659

인기 태그

인프런 TOP Writers

주간 인기글