묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 기반 REST API 개발
ModelMapper 테스트 관련 문의
안녕하세요. 지난번 질문에 상세히 답해주셔서 감사합니다. 추가로 ModelMapper 테스트 관련해서 문의드립니다. 기선님의 강의를 듣고 ModelMapper를 사용해보려고 하는데, 기존에 Mockito를 사용해서 테스트하던 부분이 ModelMapper를 적용하면서 Mocking이 잘 안되고 있습니다. 어떤 부분이 잘못되었는지 확인 부탁드립니다. @Test public void When_재료_리스트_조회_Then_정상_반환() { // Given Page<MaterialEntity> materialEntityPage = new PageImpl<>(Collections.singletonList(this.materialEntity)); given(this.materialRepository.findAll(any(Pageable.class))).willReturn(materialEntityPage); Material material = this.modelMapper.map(this.materialEntity, Material.class); // modelMapper Mocking 코드 given(this.modelMapper.map(any(MaterialEntity.class), eq(Material.class))).willReturn(material); // When final Page<Material> materialPage = this.materialService.readMaterialList(PageRequest.of(0, 10)); // Then assertThat(materialPage.getSize(), is(1)); assertThat(materialPage.getContent().get(0), instanceOf(Material.class)); assertThat(materialPage.getContent().get(0).getName(), is(this.materialEntity.getName())); assertThat(materialPage.getContent().get(0).getUnitName(), is(this.materialEntity.getUnitEntity().getName())); } @Service public class MaterialServiceImpl implements MaterialService { private final MaterialRepository materialRepository; private final UnitRepository unitRepository; private final ModelMapper modelMapper; public MaterialServiceImpl(MaterialRepository materialRepository, UnitRepository unitRepository, ModelMapper modelMapper) { this.materialRepository = materialRepository; this.unitRepository = unitRepository; this.modelMapper = modelMapper; } @Override public Page<Material> readMaterialList(Pageable pageable) { Page<MaterialEntity> materialEntityPage = this.materialRepository.findAll(pageable); // 테스트를 위해 추가: testMaterial에 null 값이 들어옴 Material testMaterial = this.modelMapper.map(materialEntityPage.getContent().get(0), Material.class); return materialEntityPage .map(materialEntity -> modelMapper.map(materialEntity, Material.class)); } }
-
미해결Vue로 Nodebird SNS 만들기
sequelize pk
따로 프라이머리 키 안 정하나요 보통?
-
미해결Node.js 웹개발로 알아보는 백엔드 자바스크립트의 이해
mysql 설치및 설정방법
원래 이 강의에는 없는 내용인가요? mysql 강좌에서 막혀서 진행이 안 되네요
-
미해결누구나 할 수 있는 안드로이드 앱 개발 - 2 (Kotlin)
혹시 코딩한 예제 소스를 좀받을수있을까요?
선생님반갑습니다 강좌를 따라하던중 선생님께서 코딩하신것과 다른결과가 나와서 대조하기가 힘드네요 ㅠㅠ 혹시 강좌에쓰인 샘플소스를 볼방법이 없을까요?
-
미해결코어 자바스크립트
init() 을 쓰는 이유 질문드려요!
클로저 강의를 듣다보니 문득 궁금한것이 생겼는데요. 자바스크립트에서는 다른 언어들(c나 자바) 처럼 init 이라는 개념자체가 없다고 알고있습니다. 어느 패턴은 js 파일 맨 밑에 var test = document.getElementById("test"); // 함수부분은 생략. function init() { testFunc(); test.addEventListener("click", test2Func); } init(); 위와 같이 init 함수를 임의로 만들어놓드라구요. (제가 생각하기에는) 그 안에다 최초 실행되는 이벤트들을 보기 좋게 모아둔 함수 인것 같은데요. 구글에 검색해보았을때는 키워드가 잘못된건지, 위 코드와 같은 패턴에 대한 정보를 찾지 못하겠습니다.ㅜ 대강... 조각들을 맞춰보면 변수들을 계속해서 유지? 사용하기 위한?? 초기화...?? 를 위한 함수 라는데 그게 정확히 있고 없고에 차이를 모르겠습니다. 답변 주시면 감사하겠습니다! 강의 항상 잘보고있어요
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
시간 초과
구현하신 알고리즘으로 하면 input 5 번에서 시간초과가 납니다. 더 빠르게 구하는 방법이 있나요?
-
미해결그로스해킹 - 데이터와 실험을 통해 성장하는 서비스를 만드는 방법
분석환경이 파이썬인가요 알인가요?
분석환경에서 사용하는 개발언어 알려주세요
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
직접 조합을 구해서 문제를 풀어서 얻는 이점이 무엇인가요?
피자 배달 거리를 직접 조합을 구하지않고 푸는 방식으로 구현하였는데 시간복잡도에서 유의미한 차이가 있나요..? 똑같은 복잡도 아닌가요?
-
미해결iOS12 앱 개발 퍼펙트 가이드
키보드가 자동으로 올라오지 않아요
강의 내용대로 becomeFirstResponder()를 작성했을 때 바로 커서는 생기는데 키보드가 생기지 않습니다. 인터넷에 찾아보니 시뮬레이터-하드웨어-키보드-Toggle Software Keyboard를 하면 키보드가 뜬다고 해서 다음과 같이 진행해서 키보드가 뜨는 것은 확인했습니다. 하지만 해당 시뮬레이터를 끄고 다시 재실행했을 때는 키보드가 다시 자동으로 뜨지 않는다는 것을 알게되었습니다. 인터넷에서 알려준 위와 같은 방법으로 한다면 계속 실행시 마다 수작업으로 키보드를 켜주는 것인데 그렇게 하지 않고 강사님처럼 시뮬레이션을 키면 자동으로 키보드가 뜨게하려면 어떤 점을 고쳐야 하는지 궁금합니다.
-
해결됨홍정모의 따라하며 배우는 C언어
switch의 작동방식을 더 구체적으로 설명해주세요.
switch의 작동 방식에 대해서 더 구체적으로 설명해주세요. 강의에서 설명해 주지 않으셔서 개인적으로 검색해서 공부했습니다.
-
해결됨React로 NodeBird SNS 만들기
0 undefined 에러.
cover={post.Images[0] && <img alt="example" src={`http://localhost:3065/${post.Images[0].src}`} />} dImages[0] 에서 0 undefined 에러가 뜨는데 값이 없다는 건지 어디서 부터 봐야 되는지 잘 모르겠습니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
영한님! 질문있습니다!
on 대신에 where해도 되지 않나요?!
-
해결됨홍정모의 따라하며 배우는 C++
[04:10] 음성 protected는 자식도 접근 가능하다라고 바뀌어야 할 거 같아요.
안녕하세요? [04:10] 음성 protected는 자식도 접근 가능하다라고 바뀌어야 할 거 같아요. 감사합니다.
-
미해결쉽게 배우는 Webpack
웹팩강의 리뉴얼
일전에 담당자와 이메일을 주고 받았을때 조만간 웹팩강의 리뉴얼이 된다고 들었습니다. 작년 12.13 기준 한달 이내라고 안내를 받았습니다. 기다리고 있는데 , 혹시 정확한 날짜가 있을까요?
-
해결됨스프링 웹 MVC
MVC 패턴의 단점으로 코드 네비게이션
선장님 코드 네비게이션의 뜻이 궁굼합니다~
-
해결됨홍정모의 따라하며 배우는 C++
[12:31] 1. Person(name_in) ide에서 순간적으로 잘못 판단한 거 같아요. 2. 음성문제
안녕하세요? 복습을 하면서 느끼는 건데 강의에 정말 정성이 많이 들어간 것 같아요. 감사하게 생각하고 있습니다. 1. =========================================== Person의 생성자에 디폴트 파라미터를 넣지 않아도 정상적으로 작동합니다. 아마 순간적으로 비주얼스튜디오가 잘못 판단했던 거 같습니다. 강의화면에 나온 오류메시지를 보고 실험을 해봤는데요.아규먼트 타입이 안맞았다는 오류 같아요. 강의화면을 보면 요 오류메시지가 Person::Person에 아규먼트 타입이 (const std::string)과 일치하는 생성자가 없다? 라고 말하는 거 같은데 바로 넘어간 화면을 보면 이렇게 const std::string을 매개변수로 받는 생성자가 있거든요. 저는 const를 빼고 실험을 해보니까 같은 오류가 뜨더라고요. const를 다시 붙이니까 오류가 사라지고요. 그래서 일시적인 ide의 판단착오? 아닐까 생각을 해봤습니다. 2.========================================================== [30:00] 음성 바뀌어야할 것 같습니다. "Person클래스에 있는 것들은 student class와 teacher class에서 가져다 쓸 수가 있어요" 말이 바뀌어서 나와버린 거 같아요. 감사합니다.
-
미해결인스타그램 클론 - full stack 웹 개발
히든메뉴 반응형이 강의에서 안되있어요
히든메뉴 만들 때 일정픽셀 아래로 내려가야 생성되는데 평상시에는 display:none상태였다가 픽셀이 650으로 내려가야 display:""해야 하는 것 아닌가요?
-
미해결Node.js 교과서 - 기본부터 프로젝트 실습까지
질문이요
프로그램 짤때요, 이런 작동 개념을 어떻게 적용을 해야할지 모르겠어요...? 작동 개념은 이해가 가는데, 어떤식으로 적용해야할지 모르겠네요...
-
해결됨홍정모의 따라하며 배우는 C++
[연습문제] 이니셜라이저 리스트 , 대입연산자 오버로딩
안녕하세요? 이 경우에는 파라미터?로 이니셜라이저 리스트를 받으니까 1. 셀프 어사인먼트 방지하는 방법은 생각을 못했습니다. IntArray& operator=(const std::initializer_list<int>& list) { cout << "assignment operator" << endl; cout << "list.size() In assignment operator " << list.size() << endl; delete[] m_data; int length = list.size(); m_data = new int[length]; int count = 0; for (auto& element : list) { m_data[count] = element; ++count; } return *this; } //IntArray(list.size()); // 생성자를 통한 초기화는 안되는거고 2. m_data가 데이터를 가지고 있을 수는 있으니까 지워주고 리스트의 길이만큼 new로 초기화해주고 리스트의 값을 복사해줬습니다. 교재인 learncpp에서 해당 부분을 찾아보니 다음과 같이 출력을 해야 한다더라고요. 그런데 리스트의 사이즈는 7인데 5개만 나왔습니다. 자고 일어나서 해결해보겠습니다. 감사합니다. <출력화면> <전체코드> // 9_12.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include <cassert> #include <initializer_list> using namespace std; class IntArray { private: unsigned m_length = 0; int* m_data = nullptr; public: IntArray(unsigned length = 0) : m_length(length) { m_data = new int[length]; } IntArray(const std::initializer_list<int>& list) : IntArray(list.size()) { cout << "list.size() In constructor " << list.size() << endl; int count = 0; for (auto& element : list) { m_data[count] = element; ++count; } //for (unsigned count = 0; count < list.size(); ++count) // m_data[count] = list[count]; // error } ~IntArray() { delete[] this->m_data; } IntArray& operator=(const std::initializer_list<int>& list) { cout << "assignment operator" << endl; cout << "list.size() In assignment operator " << list.size() << endl; delete[] m_data; int length = list.size(); m_data = new int[length]; int count = 0; for (auto& element : list) { m_data[count] = element; ++count; } return *this; } friend std::ostream& operator << (std::ostream& out, const IntArray& arr) { for (unsigned i = 0; i < arr.m_length; ++i) out << arr.m_data[i] << " "; out << endl; return out; } }; int main() { int my_arr1[5] = { 1,2, 3,4,5 }; int* my_arr2 = new int[5]{ 1,2,3,4,5 }; auto il = { 10, 20, 30 }; IntArray int_array { 1, 2, 3, 4, 5 }; cout << int_array << endl; int_array = {7, 2, 3, 2, 1, 6, 5}; cout << int_array << endl; return 0; }
-
미해결홍정모의 따라하며 배우는 C언어
(10. 13) 포인터의 배열이 어떻게 문자열을 원소로 가질 수 있을까요?
안녕하세요 교수님! 교수님의 강의를 열심히 듣고있는 학생입니다. 강의 10. 13에서 24 : 30 부분에 잘 모르겠는 내용이 있어서 질문 드립니다. 아래 코드에서 name 은 char형 포인터의 배열인데, 어떻게 그 원소가 Aladdin 과 같은 문자열이 될 수 있을까요? 이해가 어려워서 똑같이 코드를 입력해보았으나 "Aladdin" 아래에 빨간줄이 뜨면서 디버깅이 되지 않네요. 답변해주신다면 내용을 이해하는데 많은 도움이 될 것 같습니다. 읽어주셔서 감사합니다.