2009/04 6

Google Test의 문자열 비교 Assertion

UnitTest++과 비교했을 때 상대적으로 Google Test가 좋은 점 중에 한 가지는 문자열 비교이다. Google Test는 wide character 문자열도 잘 비교해주기 때문에 다음과 같은 문자열 비교 assertion을 써서 실제 값과 다른 경우에는 아래와 같이 문자열 값을 실패 메시지에 포함시켜서 보여준다. ASSERT_STREQ(_T("-111"), xe->GetProperty(_T("Canvas.Left"))); (노파심에 프로젝트명은 지움) Google Test의 문자열 비교 assertion에는 이런 것들이 있다. Fatal assertion Nonfatal assertion ASSERT_STREQ(expected_str, actual_str); EXPECT_STREQ(expec..

2009.04.28

shared_ptr의 custom deleter 사용법

내가 처음 custom deleter를 봤을 때에는, shared_ptr 생성자에서 한 번 custom deleter를 지정해주면 그 다음부터 reset()을 하더라도 항상 처음에 지정했던 deleter를 불러줄 거라는 기대가 있었다. 그래서 테스트를 해봤더니 그런게 아니네. custom deleter를 유지하고 싶다면 reset()을 할 때 deleter도 같이 넘겨줘야 한다. 아래 테스트 코드는 custom deleter를 지정하지 않고 reset()한 경우에는 custom deleter가 호출되지 않는다는 걸 Google Test를 이용해서 보여주는 코드이다. class TestSharedPtrFixture : public testing::Test { public: std::stringstream ..

2009.04.23

'배움'에 대한 내 자세

자녀 교육과 배움에 대해서 쓴 바하문트님의 글을 보고 문득 나를 돌아보게 되어 글을 쓴다. 나는 배움에 대한 강박 관념이 있는 것 아닌가 싶다. 그런데 그 배움이라는 것이 스스로 생각하고 생각하는 방법을 발전시키는 것이 아닌, 깊이는 얕은 지식량에 대한 집착이 아닌가 하고 생각할 때가 많다. 강의를 찾아다니고, 컨퍼런스를 찾아다니고, 수많은 블로그 글을 훑어내리는 등 정보를 찾고 배우려고 하는 어느 정도의 적극성은 가지고 있지만, 거기서 바로 얻을 수 있는 정보만 수동적으로 받아들이고 지나가는, 그래서 시간이 좀 지나면 금세 잊어버리고 마는 경우가 대부분이다. 읽은 것, 들은 것에 대해 설명을 할라치면 금세 막히는 부분이 많고 비약하여 건너뛰는 부분이 많음을 스스로도 알게된다. 아이에게 표현하게 하고, ..

2009.04.20

Google Test & Visual Studio 2008

google test를 다운받는다.(gtest-1.3.0) 필요한 폴더만 남기고 나머지는 다 지운다. 실제 프로젝트에서 쓸 때에는 include, msvc, src 폴더 외에는 필요없다. msvc 폴더의 파일 중에도, 프로젝트에서 쓸 때에는 gtest.vcproj 파일 외에는 다 필요 없으므로 지워버린다. VS2008로 gtest.vcproj 파일을 열어서 2008 포맷으로 변환해준 후 VS를 닫는다. (닫을 때 sln을 저장할 것인지 물어보는데 저장하지 않음을 선택한다.) 프로젝트를 만든다. 솔루션 폴더에 gtest-1.3.0 폴더를 통채로 옮긴다. 여러 사람이 같이 작업하는 프로젝트에서 구글 테스트 프레임워크를 쓰기에는, 솔루션 폴더에 통채로 포함시키는 편이 공유하기에 편하다. 현재 사용중인 버전을 ..

2009.04.18

텍스트큐브 닷컴으로 이전

갑자기 충동이 들어 베타 테스트 중인 텍스트큐브 닷컴으로 옮겨버렸다. 동일한 텍스트큐브 계열이라 옮기는 건 순식간이네. 근데 옮겨놓고 보니 예전 스킨이 더 예뻐보이는 건 왜지 -_-; 도메인 변경도 해 놨는데, wafe.kr로 접속이 변경되는 건 하루 정도는 걸리지 않을까 싶다. (오, 자고 일어나니 변경되어 있네. 예상보다 빨리 갱신 되었다.) 티스토리에서는 아직도 환경설정에서 "글 주소를 문자로 사용"으로 설정해도 여기저기에 숫자로 된 글 주소가 노출되어서(페이지 번호 등) 동일한 글인데도 두 가지 주소가 노출된다. 일부러 의미있는 URL로 잘 만들고 있는데 그런 잔손질을 의미 없게 만들어 버리는 것 같아서 맘 상했다. 텍스트큐브 설치형을 사용하거나 텍스트큐브 닷컴을 사용하는 다른 블로그들은 그런 현..

2009.04.17

Silverlight Code Coverage

Silverlight용 Unit Testing Framework는 Jeff Wilcox의 Microsoft Silverlight Unit Test Framework이 제일 유명하다. Visual Studio Team System Developer Edition 에서는 "코드 검사"라는 기능을 통해서 유닛 테스트 실행 후 커버리지를 보여주는 기능을 포함하고 있다. 그런데 이것은 닷넷 어플리케이션에만 적용되고, Silverlight 어플리케이션에서는 쓸 수 없다. Silverlight는 보안을 위해서 별도의 분리된 환경에서 실행되므로, NCover등이 사용하는 기존의 방식으로는 커버리지를 측정할 수 없다고 한다. (어떤 방식인지 찾아보면 재미있을 듯) 즉, Silverlight 어플리케이션의 유닛 테스트에서..

2009.04.09