-1
私は、次の操作を実行し、別のGTESTを持っており、それが正常に動作します:GTESTセットアップティアダウンTestEnvironment - 変数クラスの問題
TEST(TEST1, TestName)
{
ClassName env;
const String original = env(Con::WorkingDir);
Con c = env;
}
をしかし、私はこれは別のGTESTクラスに対して設定され、全体を通じて保持されるようにしたいですテストフィクスチャ。適切なオペレータまたは関数へのポインタ型へ 変換関数のないクラス型のオブジェクトの
コール:しかし、私はこのエラーメッセージを取得しています。
私はinitialize gtestを見ていますが、私はこれについて何が欠けているのか分かりません。それは私が慣れていない静的変数の使用かもしれません。私はClassNameを静的にしたくありません。
どうしたのですか?
//this is intended to setup env to use in teardown.
class TestEnvironment : public ::testing::Environment {
public:
static String getEn() {
ClassName env;
static const String sString = env(Con::WorkingDir); //env has the error message here
return sString;
}
}
class UnitTest : public ::testing::Test
{
public:
virtual void SetUp() {
//
}
virtual void TearDown() {
//set env back to initial value
getEn();
//process env info;
}
クラス 'ClassName'についてもっと詳しく教えてください。 'static const String sString = env(Con :: WorkingDir);'のようなステートメントは、 'env'が関数オブジェクトであればコンパイルでき、エラーメッセージはそれがそうでないことを示唆します。私は 'ClassName'の定義を追加して質問を編集することをお勧めします。 –
静的なconstを取り除いて動作させました – Michele
クラスは関数オブジェクトではありません。私はそれについて聞いたことがありません。 – Michele