के लिए कन्स्ट्रक्टर तर्क निर्दिष्ट करें Google परीक्षण के साथ मैं विभिन्न परीक्षण मामलों में उपयोग के लिए एक परीक्षण स्थिरता निर्दिष्ट करना चाहता हूं। स्थिरता कक्षा TheClass
और इसकी डेटा प्रबंधन कक्षा TheClassData
की वस्तुओं को आवंटित और हटाएगी, जहां डेटा प्रबंधन वर्ग को डेटाफ़ाइल का नाम आवश्यक है।
विभिन्न परीक्षणों के लिए, फ़ाइल का नाम अलग-अलग होना चाहिए।Google परीक्षण स्थिरता
class TheClassTest : public ::testing::Test {
protected:
TheClassTest(std::string filename) : datafile(filename) {}
virtual ~TheClassTest() {}
virtual void SetUp() {
data = new TheClassData(datafile);
tc = new TheClass(data);
}
virtual void TearDown() {
delete tc;
delete data;
}
std::string datafile;
TheClassData* data;
TheClass* tc;
};
अब, विभिन्न परीक्षणों अलग फ़ाइल नाम के साथ स्थिरता का उपयोग करना चाहिए:
मैं निम्नलिखित स्थिरता को परिभाषित किया। कल्पना करें कि यह एक परीक्षण वातावरण स्थापित करने के रूप में है।
प्रश्न: मैं परीक्षण से फ़ाइल नाम कैसे निर्दिष्ट कर सकता हूं, यानी एक स्थिरता के गैर-डिफ़ॉल्ट कन्स्ट्रक्टर को कैसे कॉल करें?
मुझे ::testing::TestWithParam<T>
और TEST_P
जैसी चीजें मिलीं, जो मदद नहीं करती हैं, क्योंकि मैं अलग-अलग मूल्यों के साथ एक परीक्षण नहीं करना चाहता हूं, लेकिन एक स्थिरता के साथ विभिन्न परीक्षण।
तो क्या आप खुद को उस स्थिरता को चलाने के लिए चाहते हैं? गूगल टेस्ट डिफॉल्ट टेस्ट रनर पैरामीटर के साथ फिक्स्चर को तुरंत चालू नहीं कर सकता है। –
मैं स्थिरता का उपयोग कर एक परीक्षण (शायद 'TEST_F') चलाने के लिए चाहता हूं। तो जवाब यह है कि यह संभव नहीं है? धन्यवाद। – Gregor
मुझे लगता है कि 'TestWithParam' और 'TEST_P' बिल्कुल वही है जो आपको चाहिए। [उन्नत डॉक्स] देखें (https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md) अभ्यास में उनका उपयोग कैसे करें। टेस्टकेस के अंदर आप हमेशा परीक्षण के तहत इंस्टेंस को तुरंत चालू कर सकते हैं (मुझे लगता है कि यह 'TheClass' है)। –