मैं सिर्फ इकाई परीक्षण पर काम करना शुरू (परीक्षण के लिए बूस्ट ढांचे का उपयोग कर, लेकिन mocks के लिए मैं गूगल मॉक उपयोग करने के लिए) और मैं इस स्थिति है:गूगल नकली इकाई परीक्षण स्थिर तरीकों C++
class A
{
static int Method1(int a, int b){return a+b;}
};
class B
{
static int Method2(int a, int b){ return A::Method1(a,b);}
};
तो, मैं नकली कक्षा ए बनाने की जरूरत है, और मेरी कक्षा बी को कक्षा से वास्तविक विधि 1 का उपयोग न करने के लिए, लेकिन नकली उपयोग करने की आवश्यकता है।
मुझे यकीन नहीं है कि यह कैसे करें, और मुझे कुछ समान उदाहरण नहीं मिला। हर परीक्षण से पहले
struct MockA
{
static MockCalc *mock;
static int Method2(int a, int b){ return mock->Method1(a,b);}
};
class MockCalc {
public:
MOCK_METHOD2(Method1, int(int,int));
};
, स्थिर नकली वस्तु MockA::mock
प्रारंभ:
मैं gmock से परिचित नहीं हूँ, लेकिन तुम सिर्फ 'B.o' और' mockA.o' लिंक नहीं कर सके? – Beta
जहां तक मुझे पता है, स्थिर तरीकों से निपटने के कुछ अलग तरीके हैं। मैं शायद वर्चुअल होने के लिए विधि 1 बनाने और कक्षा बी में कन्स्ट्रक्टर जोड़ने के साथ इसे हल कर सकता हूं, इसलिए यह बी (ए और ए) जैसे कुछ दिखता है: a_in_class_b (ए) {}, और फिर विधि 1 की कॉल इस तरह दिखेगी: a_in_class_b -> Method1(); लेकिन मैं देखना चाहता हूं कि कोई और तरीका है या नहीं। – Jonhtra