2014-09-30 2 views
1

유닛 테스트를 위해 ScalaTest를 사용하고 있습니다. 나는 아래처럼 보이는 테스트 결과 (JSON)를 가지고있다. 실제 결과는 거대하고 복잡합니다. 이것은 하나의 예입니다.ScalaTest를 사용하여 동적 데이터 (타임 스탬프)를 마스크하는 가장 좋은 방법

[{"name":"George", "when":143828333, ...}, {"name":"Fred", "when":14857777, ... }] 

필드 값은 동적이며에 테스트 테스트 (즉, 현재 타임 스탬프)으로 변경되므로, I는 이들에 대해 테스트 할 수 없습니다 '언제'. 일부 정규 표현식을 사용하여이를 마스크 처리 할 수 ​​있습니다. 기본적으로 일부 비활성 토큰으로 대체합니다.

ScalaTest는 이와 같이 동적 데이터 비트를보다 우아한 방식으로 처리합니까?

+1

일반적인 설정에서 이러한 값을 생성하는 모듈을 조롱합니다. – rightfold

답변

0

이 상황에서 내가 과거에 여러 번 해왔 던 것은 정확하게 제안한 것입니다. 정규식을 사용하여 날짜를 상수로 바꿔서 비교할 수 있습니다.

1

비교하려는 유형에 대해 사용자 정의 평등을 만들 수 있습니다. 사용자 정의 평등은 평등 비교를위한 동적 필드를 무시할 수 있습니다. 평등에 대한 정보가 여기에 있습니다 :

http://doc.scalatest.org/2.2.0/index.html#org.scalactic.Equality

그런 다음 areEqual 메소드를 정의하면된다와 할 필요가 암시합니다. 그래서 유형이 무엇이든 상관없는 평등 [JsonType] 또는 평등 [String]. 이것은 === 연산자와 귀하의 주장에있는 평등 일치 프로그램에 의해 선택됩니다.