I have a class MyClass within a namespace MyNameSpace, and I define a == operator in test unit, so, classes could be copmared.
The unit test doesn' compile 'cause theres no operator == match for const MyNameSpace Myclass, MyNamespace MyClass, even if I have it in unit test.
Without using a namespace works as expected.
Lets say we have:
namespace MyNamespace {
class MyClass {
public :
QString a;
};
}
and in test unit:
....
#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);
}
I solved by wrapping the definition of operator == into std namespace