2014-03-27 2 views
6

: Visual Studio에서 디버깅 할 때이 메모리에 객체 (모든 속성과 값)을 복사 할 수있는 기능이 있다면비주얼 스튜디오 디버거 복사 객체

그것이 정말 좋은 것입니다. 당신이 코드에서 중단 점을 넣을 수있는 뭔가를 생각하고 있습니다 -> 마우스 오른쪽 버튼으로 개체를 클릭하십시오 - "클립 보드에 moq 만들기"를 클릭하십시오.

그런 다음 코드를 붙여 넣을 텍스트를 붙여 넣을 수 있습니다 모든 속성을 가진 객체를 생성합니다.

시간이 많이 걸리므로 버그 수정에 유용 할 것입니다.

유닛 테스트에서 찾은 어려운 것 중 하나는 모의 객체를 만드는 수동 프로세스입니다.

답변

-1

모의 객체를 만드는 것이 부담 스럽다면 디자인이나 모의 객체 사용 방법에 문제가있을 수 있습니다. 당신은 단순한 'value'객체를위한 모의 객체를 생성해서는 안됩니다 - 단지 단위 테스트에서 실제 객체를 사용하십시오. 테스트 대상 객체가 상호 작용하는보다 복잡한 객체의 경우 상호 작용이 적어야하며, 그렇지 않으면 객체간에 과도한 결합이 발생할 수 있습니다. 일반적으로 테스트하기 어렵다면 디자인이 잘못되었을 수 있습니다.

+1

나는이 문장이 그린 필드 프로젝트에 대한 사실이라고 생각합니다. 그러나 나는 단위 테스트 방식이별로없는 기존 시스템에서 작업하고 있으며 현재 리팩터링 할 시간이별로 없다. 시스템 내의 문제를 해결하는 영역은 많은 시간을 소비하는 많은 것들을 밟아 나가는 것을 의미합니다. 이 문제를 디버그 도구로 사용하면 시간을 절약하고 더 많은 단위 테스트가있는 시스템으로 전환하는 데 도움이 될 것입니다. – user1619480

+0

기존 코드로 작업하는 것은 다른 상황입니다! 짧은 대답 : 나는 디버거 내에서 모의 ​​코드를 생성하는 것에 대해서는 전혀 몰라. 긴 대답 : Michael Feathers의 "Legacy Code를 효과적으로 사용하기"는 기존 코드를 테스트하는 다른 방법에 대한 좋은 조언을 제공합니다. http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052 –

5

저는 파티에 좀 늦었지만 찾고있는 것과 매우 유사한 작업을 수행하는 Visual Studio 확장 프로그램을 만들었습니다. Visual Studio 디버깅 창에서 객체를 초기화하는 C# 코드를 생성합니다.

확장은 여기에서 찾을 수 있습니다 : https://visualstudiogallery.msdn.microsoft.com/c6a21c68-f815-4895-999f-cd0885d8774f

블로그 게시물 더 많은 정보와 함께 : http://www.omarelabd.net/exporting-objects-from-the-visual-studio-debugger/