我在命名空间 MyNameSpace 中有一个类 MyClass,并且我在测试单元中定义了一个 == 运算符,因此可以对类进行编译。
单元测试没有“编译”,因为没有运算符 == 匹配 const MyNameSpace Myclass、MyNamespace MyClass,即使我在单元测试中有它。
不使用命名空间按预期工作。
假设我们有:
namespace MyNamespace {
class MyClass {
public :
QString a;
};
}
在测试单元中:
....
#include "myclass.h"
using namespace MyNamespace;
....
test_case1 {
MyClass myClass;
myClass.a = "test";
MyClass myClass2;
myClass2.a = "test";
QCOMPARE(myClass, myClass2); //Fails to compile
}
operator==(const MyNamespace::MyClass &class1, const MyNamespace::MyClass &class2) {
return (class1.a == class2.a);
}