我想用NiceMock模擬。 Mock有一個構造函數,它將另一個模擬作爲參數。這是一個很小的代碼的例子,我有工作NiceMock一個模擬,有另一個模擬作爲構造參數
class ClassA
{
ClassA() { }
};
template <class T>
class ClassB>
{
ClassB(ClassA & a) { } // constructor, no default constructor for this class
};
class ClassC
{
ClassC() { }
};
class MyTest : public Test
{
MockClassA a;
MockClassB<ClassC> * b = NULL;
SetUp()
{
b = new MockClassB<ClassC>(a);
}
...
};
這工作正常,但如果我嘗試使用MockClassB與NiceMock這樣
MockClassA a;
NiceMock<MockClassB<ClassC>> * b = NULL;
SetUp()
{
b = new NiceMock<MockClassB<ClassC>>(a);
}
我得到一個編譯錯誤說cannot convert argument 1 from 'const MockClassA' to 'ClassA &'
。請注意,該錯誤在ClassA上,這是ClassB構造函數的參數類型。它不利於包裝ClassA的像NiceMock<MockClassA> a
一個NiceMock,我只是得到一個類似的錯誤:cannot convert argument 1 from 'const testing::NiceMock<MockClassA>' to 'ClassA &'
我有我使用的是NiceMock該工作的其他模板類,但他們沒有任何參數的構造函數。
任何想法?
工作的指針!謝謝! – Martin