최근에 내 C++ 코드 용 Google 테스트를 사용하고 있습니다. 테스트를 위해 테스트 픽스처를 설정하는 방법을 읽었을 때 약간 혼란스러워졌습니다. Writing the main() Function 세션은 테스트 픽스처 클래스가 어떻게 생겼는지에 대한 예제를 보여주었습니다. 그러나 생성자 정의가 될 때, 테스트 픽스처 클래스 안에 넣어야합니까? 예를 들어, 구글 테스트 문서에 의해 주어진 다음 코드처럼 : 나는 또한 매크로 TEST_F(test_fixture_name, test_name)
의 정의를 보았다C++ Google 테스트 테스트 픽스쳐 생성자 정의
class FooTest : public ::testing::Test {
protected:
// You can remove any or all of the following functions if its body
// is empty.
FooTest() {
// You can do set-up work for each test here.
}
virtual ~FooTest() {
// You can do clean-up work that doesn't throw exceptions here.
}
}
, 동일한 테스트 픽스처와 연관된 각 테스트, 매크로가 생성됩니다 것 같아 테스트 픽스처 클래스의 새로운 서브 클래스. 위의 사실을 감안할 때
,생성자의 일이 무거운 경우, 그 컴파일러가 모든 곳에서 코드 생성자의 큰 조각을 확장하게됩니다 테스트 픽스처의 생성자의 암시
inline
을 의미합니까? (또는 같은 번역 단위에서 중요하지 않습니다)이 상황에서 테스트 픽스처 클래스 외부에서 생성자를 정의하는 것이 더 합리적입니까? 그러나 이것은 테스트 코드를 읽기 어렵게 만들 것이고, 나는 무엇을해야 할지를 정말로 모른다. ..
아무도 나에게 이것에 관해 약간의 제안을 줄 수 있냐? 감사!