C++
C ++ में यूनिट टेस्टिंग
खोज…
परिचय
इकाई परीक्षण सॉफ्टवेयर परीक्षण में एक स्तर है जो कोड की इकाइयों के व्यवहार और शुद्धता को मान्य करता है।
सी ++ में, "कोड की इकाइयां" अक्सर या तो कक्षाओं, कार्यों या दोनों के समूहों को संदर्भित करती हैं। यूनिट परीक्षण को अक्सर विशेष "टेस्टिंग फ्रेमवर्क" या "टेस्टिंग लाइब्रेरी" का उपयोग करके किया जाता है जो अक्सर गैर-तुच्छ वाक्यविन्यास या उपयोग पैटर्न का उपयोग करते हैं।
यह विषय विभिन्न रणनीतियों और इकाई परीक्षण पुस्तकालयों या रूपरेखाओं की समीक्षा करेगा।
Google टेस्ट
Google टेस्ट Google द्वारा बनाए रखा गया C ++ परीक्षण ढांचा है। टेस्ट केस फाइल बनाते समय इसे gtest
लाइब्रेरी बनाने और इसे अपने टेस्टिंग फ्रेमवर्क से जोड़ने की आवश्यकता होती है।
न्यूनतम उदाहरण
// main.cpp
#include <gtest/gtest.h>
#include <iostream>
// Google Test test cases are created using a C++ preprocessor macro
// Here, a "test suite" name and a specific "test name" are provided.
TEST(module_name, test_name) {
std::cout << "Hello world!" << std::endl;
// Google Test will also provide macros for assertions.
ASSERT_EQ(1+1, 2);
}
// Google Test can be run manually from the main() function
// or, it can be linked to the gtest_main library for an already
// set-up main() function primed to accept Google Test test cases.
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
// Build command: g++ main.cpp -lgtest
पकड़
कैच एक हेडर केवल लाइब्रेरी है जो आपको TDD और BDD यूनिट टेस्ट स्टाइल दोनों का उपयोग करने की अनुमति देता है।
निम्नलिखित स्निपेट कैच प्रलेखन पृष्ठ से इस लिंक पर है :
SCENARIO( "vectors can be sized and resized", "[vector]" ) {
GIVEN( "A vector with some items" ) {
std::vector v( 5 );
REQUIRE( v.size() == 5 );
REQUIRE( v.capacity() >= 5 );
WHEN( "the size is increased" ) {
v.resize( 10 );
THEN( "the size and capacity change" ) {
REQUIRE( v.size() == 10 );
REQUIRE( v.capacity() >= 10 );
}
}
WHEN( "the size is reduced" ) {
v.resize( 0 );
THEN( "the size changes but not capacity" ) {
REQUIRE( v.size() == 0 );
REQUIRE( v.capacity() >= 5 );
}
}
WHEN( "more capacity is reserved" ) {
v.reserve( 10 );
THEN( "the capacity changes but not the size" ) {
REQUIRE( v.size() == 5 );
REQUIRE( v.capacity() >= 10 );
}
}
WHEN( "less capacity is reserved" ) {
v.reserve( 0 );
THEN( "neither size nor capacity are changed" ) {
REQUIRE( v.size() == 5 );
REQUIRE( v.capacity() >= 5 );
}
}
}
}
आसानी से, इन परीक्षणों की रिपोर्ट इस प्रकार की जाएगी जब रन किया जाएगा:
Scenario: vectors can be sized and resized Given: A vector with some items When: more capacity is reserved Then: the capacity changes but not the size