0

前の質問から続く。

要件はGoogleテスト用です。私がグーグルテストでTeastケースを追跡したら"Rasmi"。再実行する必要Hiがあります。その後、実行されますRasmi。物事を明確にする:-

vect.push_back("Hello"); 
vect.push_back("Hi"); 
vect.push_back("Rasmi"); 
for(vect<string>::iterator it = vect.begin(); it != vect.end(); ++it) 
{  
if(*it == "Rasmi") // If it encounters "Rasmi"     
{ 
//it--;    
int index = it - vect.begin ();       
vect.insert(vect.begin()+2, "Hi");  
it = vect.begin () + index;    
}    
cout << *it; 
} 

この場合、テストケースを再Hi実行すると、前に実行したテストケースをコピーして貼り付けるだけです。それがテストケースRasmiが失敗する理由です。しかし、すべてが次のような条件なしで実行される場合

Hello->Hi->Rasmi... The execution becomes successful.

GoogleTestを再初期化する方法を教えてください。

4

1 に答える 1

0

シングルトンを使用している場合、以前のテストから何かが残っている可能性があります (私が現在働いているところではこの問題があります)。

終了する前に、各テストがグローバル オブジェクトに加えた変更をクリーンアップするのはどうですか?

于 2012-09-13T11:09:22.077 に答える