2013-06-13 10 views
6

मैं gtest के साथ एक टेम्पलेट वर्ग का परीक्षण करना चाहता हूं। मैंने gtest manual में TYPED_TESTs के बारे में पढ़ा और official example पर संदर्भित किया, लेकिन वे अभी भी मेरे परीक्षण में तत्काल टेम्पलेट वर्ग की ऑब्जेक्ट प्राप्त करने के लिए मेरे सिर को लपेट नहीं सकते हैं।gtest - परीक्षण टेम्पलेट वर्ग

निम्नलिखित सरल टेम्पलेट वर्ग मान लीजिए:

template <typename T> 
class Foo 
{ 
public: 
    T data ; 
}; 

परीक्षण वर्ग में हम

typedef ::testing::Types<int, float> MyTypes ; 

घोषित अब कैसे मैं टी के लिए वर्ग फू का एक उद्देश्य के लिए एक परीक्षण में MyTypes में सूचीबद्ध का दृष्टांत कर सकते हैं? ईजी।

TYPED_TEST(TestFoo, test1) 
{ 
    Foo<T> object ; 
    object.data = 1.0 ; 

    ASSERT_FLOAT_EQ(object.data, 1.0) ; 
} 

उत्तर

6

एक परीक्षण के अंदर, विशेष नाम TypeParam का उल्लेख प्रकार पैरामीटर प्राप्त करने के लिए। तो आप

TYPED_TEST(TestFoo, test1) 
{ 
    Foo<TypeParam> object ; // not Foo<T> 
    object.data = 1.0 ; 

    ASSERT_FLOAT_EQ(object.data, 1.0) ; 
} 
+0

अद्भुत, बहुत टेम्पलेटरेक्स धन्यवाद! मैंने पहले टाइपपैम का उपयोग करने की कोशिश की, लेकिन मेरी गलती यह थी कि मैंने सोचा कि यह एक वर्ग है और 'टाइपपार्म एन; Foo ऑब्जेक्ट; ' चीज की तरह, जो निश्चित रूप से संकलित नहीं हुआ था। चीयर्स! – Puchatek

+0

@ पुचटेक खुशी की मदद की खुशी है! – TemplateRex

संबंधित मुद्दे