사용자 정의 형식 값을 반환하는 함수를 테스트하고 싶습니다. EXPECT_EQ
, EXPECT_FLOAT_EQ
등으로 기본 int, float, double 등을 테스트 할 수 있지만 사용자 정의 유형은 테스트 할 수 없다는 것을 알고있었습니다. 어떤 단서?사용자 정의 형식에 EXPECT_EQ를 사용하는 방법
3
A
답변
3
뭔가를 확인 할 수있는 방법이 있어야합니다.
가) 반환 유형은 그것의 값을 확인 할 수있는 데이터 구조는 멤버 변수 것입니다 :
struct A {
int v1;
float v2;
char v4;
};
그런 다음 사용 EXPECT_EQ
, EXPECT_FLOAT_EQ
및 사용 가능한 매크로 :
A a1{ 3, 2.2, 'a' };
A a2{ 4, 2.5, 'b' };
EXPECT_EQ(a1.v1, a2.v2);
심지어이 같은 경우 POD를 확인 :
EXPECT_TRUE(0 == std::memcmp(&a1, &a2, sizeof(a1)));
,
b) 리턴 타입 operator==
구현했습니다
bool operator==(const A& lh, const A& rh) {
return std::make_tuple(lh.v1,lh.v2,lh.v4) == std::make_tuple(rh.v1, rh.v2, rh.v4
}
그럼 EXPECT_EQ
비교 :
A a1{ 3, 2.2, 'a' };
A a2{ 4, 2.5, 'b' };
EXPECT_EQ(a1, a2);
또는 EXPECT_TRUE
으로 :
EXPECT_TRUE(a1 == a2);
+0
나는 당신이 'operator =='를 의미한다고 생각한다. – NicholasM
+0
@ NicholasM 네, 맞습니다. –
2
무시 == 연산자 . :) 테스트 부분에
class Object
{
public:
bool operator==(const Object& other) const
{
return (this->member == other.member); // Modify this depending on the equality criteria
}
private:
int member;
}
: 그냥 (val1과 ==을 val2) 같은 것을 할 것입니다 방법을보고
Object a, b;
EXPECT_EQ(a, b); // Should work
관련 문제
- 1. 사용자 정의 형식에 대한 VarType
- 2. 다른 데이터베이스에서 사용자 정의 테이블 형식에 액세스
- 3. 다른 사용자 정의 복합 형식에 사용자 정의 복합 형식을 변환하는 방법
- 4. 화면이나 사용자 정의 배경색에서 사용자 정의 배경 이미지를 사용하는 방법?
- 5. SharePoint에서 사용자 정의 열의 기본값을 사용하는 콘텐츠 형식에 따라 기본값을 설정하는 방법
- 6. 사용자 정의 된 데이터 형식에 대해 C++의 집합에서 삽입을 사용하는 방법?
- 7. 사용자 정의 컨트롤을 사용하는 사용자 정의
- 8. 사용자 정의 글꼴을 사용하는 사용자 정의 텍스트보기
- 9. 템플릿 형식에 대한 포인터를 사용하는 방법
- 10. 사용자 정의 HtmlHelper에서 모델의 메서드를 사용하는 방법
- 11. 이 탭에 사용자 정의 컨트롤을 사용하는 방법
- 12. Qt-Designer에서 사용자 정의 위젯을 사용하는 방법
- 13. github 페이지에 사용자 정의 도메인을 사용하는 방법
- 14. DNN에서 사용자 정의 UserAuthantication을 사용하는 방법
- 15. egrep 내에서 사용자 정의 변수를 사용하는 방법
- 16. Apple 사용자 정의 UITabBarItem 이미지를 사용하는 방법?
- 17. GORM에서 사용자 정의 ID 열을 사용하는 방법
- 18. ASP.net에서 WPF 사용자 정의 컨트롤을 사용하는 방법
- 19. Crystal 보고서에서 사용자 정의 개체를 사용하는 방법
- 20. Java generics에서 사용자 정의 유형을 사용하는 방법
- 21. coldfusion에서 사용자 정의 글꼴을 사용하는 방법
- 22. Eigen과 함께 사용자 정의 preconditioner를 사용하는 방법
- 23. server.js에서 사용자 정의 루프백 모델을 사용하는 방법
- 24. 사용자 정의 클래스 컬렉션에서 반복을 사용하는 방법
- 25. VB.net에서 사용자 정의 컨트롤을 사용하는 방법
- 26. 사용자 정의 글꼴을 사용하는 방법 BaseAdapter
- 27. Django -보기에서 사용자 정의 클래스를 사용하는 방법?
- 28. 안드로이드에서 사용자 정의 테마의 메뉴를 사용하는 방법?
- 29. WPF MVVM에서 사용자 정의 컨트롤을 사용하는 방법
- 30. silex ServiceProvider에서 사용자 정의 클래스를 사용하는 방법
당신은 사용자 정의 유형 값에 대한 == 연산자를 대체 할 수 있습니다. – Schoentoon