2017-03-02 2 views
0

Ich mache ein Unit Test System mit Google Unit Test in C++. Und ich habe bemerkt, dass alle meine Einstellungen des Komponententests dieselbe Zeile enthalten, und alle meine Tränen enthalten eine andere Zeile, die für alle gleich ist.Google Einheitentest Standardmäßig eingerichtet

Ich frage mich, ob es eine Möglichkeit gibt, eine Einrichtung zu erstellen, die standardmäßig aufgerufen wird, bevor die tatsächliche Einrichtung des beliebigen Einheitentests aufgerufen wird.

#include <gtest.h> 
class TestExample : ::testing::Test 
{ 
    public: 
     virtual void SetUp() 
     { 
      //same line for all tests of my system 
      my_system::clean_system(); 

      //code of specific setup 
      //... 
     } 
     virtual void TearDown() 
     { 
      //Code of specific teardown 
      //... 

      my_system::clean_system(); 
     } 
}; 

Antwort

1

Sie können ein Wrapper-Klasse, dh erstellen TestWrapper, in dem Sie den Standard SetUp() definieren und TestWrapper Klasse in Ihrem Unit-Test statt ::testing::Test und Überlastung verwenden, um die dann CustomSetUp()

#include <gtest.h> 

class TestWrapper: public ::testing::Test 
{ 
    public: 
     virtual void CustomSetUp() {} 
     virtual void SetUp() 
     { 
      //same line for all tests of my system 
      my_system::clean_system(); 

      CustomSetUp(); //code of specific setup 
     } 
}; 

nennen CustomSetUp() statt von SetUp()

class TestExample : public TestWrapper 
{ 
    public: 
     virtual void CustomSetUp() 
     { 
      //code of specific setup 
      //... 
     } 
     virtual void TearDown() 
     { 
      //Code of specific teardown 
      //... 

      my_system::clean_system(); 
     } 
}; 
+0

Ja, ich dachte schon Ich frage diese Frage, ob es eine Methode innerhalb von Google Test gibt, um eine Zeigerfunktion zu setzen, die vor der Einrichtung aufgerufen wird oder etwas Ähnliches, und lasse den Programmierer diesen Schritt nicht überspringen. Aber, danke, trotzdem, ich werde den Wrapper machen. ^^ – Check

Verwandte Themen