2010-01-07 2 views
16

서브 시스템에 헤더 파일이 있지만 소스 코드에 액세스 할 수 없다고 상상해보십시오.(헤더 파일의 코드 스텁 생성기 찾기)

이제 테스트 목적으로 헤더 파일에 선언 된 모든 함수와 일치하는 스텁을 생성하려고합니다.

이렇게 간단한 코드를 작성했지만 완벽하지는 않습니다. 누구든지이 일을 할 자유롭게 사용할 수있는 소프트웨어를 알고 있습니까?


[업데이트] 5 년 요구 한 후,이 질문은 여전히 ​​받고있다 upvotes.

그것은 화제로 닫혔다. 요즘은 (원래 게시되었을 때가 아니었다.) 다행스럽게도 소프트웨어 권장 사항은 https://softwarerecs.stackexchange.com/

+1

타사 DLL에 연결 하시겠습니까? 왜냐하면 만약 당신이 쉽게 연결을위한 .lib를 생성 할 수 있고, dll이 C++ 이름 맹 글링으로 컴파일되었다고 가정하면 클래스/함수를 얻기 위해 도구를 사용할 수 있기 때문입니다. – user230821

+3

그리고 돌고래는 이것에 아무런 문제가 없습니까? (죄송합니다, * 돌고래 *를 넘을 수 없었습니다). – Tarydon

+1

+1 나는 작은 실수도한다 ;-) – Mawg

답변

6

내 생각에 stubgen이 좋겠네요.

+0

+1 그리고 대답. 네, 그게 제가 찾고 있었던 바로 그 것입니다. 고맙습니다! – Mawg

+0

처음에는 잘 보였지만 (필자도 같은 요구 사항을 가짐) 네임 스페이스 선언을 파싱하는 것으로 넘어졌습니다. – regomodo

3

Visual Studio 용 Visual Assist X가 자동화되어 있지는 않지만 요청할 수 있습니다. 또한 아무튼

Tri Camera::ProjectTriOnPlane(Tri* a_Triangle) 
{ 

} 

: 해당이 .c 또는 통화 당이 발견되면

Tri ProjectTriOnPlane(Tri* a_Triangle); 

그리고 기능에

, 그래서 같은 구현을 만들 것이다, Refactor (VA X) -> Create Implementation로 이동 뭔가 표준을 돌려주지 않는다면, 그것은 조금은 수치 스럽습니다.

+0

죄송합니다. 대량 자동 – Mawg

+0

+1이 필요합니다.회신에 시간을내어 주셔서 감사합니다. – Mawg

3

아마도 Lzz은 원하는 것을 수행합니다.

+0

그럴 수도 있습니다. 헤더 (및 소스)를 생성하지만 헤더를 피드 싶습니다. 헤더로 입력을 막히지 않으면 생성 된 헤더를 무시하고 생성 된 소스 만 사용할 수 있습니다. 나는 그것을 시도하고 당신에게 돌아올 것입니다. – Mawg

1

Doxygen을 사용하여 쉽게 스텁 생성기를 작성할 수 있습니다. 잘 알려지지 않았지만 XML 출력에 대해 아주 멋진 추상화를 제공하는 도우미 라이브러리가 함께 제공됩니다 (this page 참조).

this header file의 끝 부분을 보면 멋진 IStructs, IClass 개체를 얻을 수 있으며이 개체에서 ISections와 IMembers를 나열 할 수 있습니다. 모두 매우 쉽고 원하는대로 사용자 지정할 수 있습니다.

일반 도구에서 원하는 정확한 스텁을 얻을 수 있을지 의심 스럽지만 Doxygen을 사용하여 직접 코드를 작성하는 것이 더 나을 것입니다. C++ 구문을 올바르게 구문 분석하는 데 필요한 많은 노력이 필요하기 때문입니다.

테스트 패턴이 주로 메서드 매개 변수의 형식에 따라 다르면 메서드 매개 변수를 분석하고 적절한 코드를 생성하여 전체 테스트 스텁을 생성 할 수 있습니다.