정확히 동일한 스키마로 실제와 예상을 위해 정의 된 두 개의 테이블이 있습니다. 2의 ID 말에 나는tSQLt AssertEqualsTable이 순서를 확인하지 않음
1. 나는
INSERT INTO actual EXEC tSQLt.ResultSetFilter 1, '{statement}'
실제 다음
EXEC tSQLt.AssertEqualsTable @expected = 'expected' , @actual = 'actual'
결과를 비교하기 위해 채울 실행, 예상되는 테이블에 두 개의 행을 삽입합니다.
데이터의 순서가 다르지만 (실제 ID는 1, 2) 테스트에 합격합니다.
실제 데이터를 SELECT * FROM에 추가하고 테스트에서 SELECT * FROM을 추가하고 tSQLt.Run '{test name}'을 사용하여 테스트를 실행하여 데이터가 다르다는 것을 확인했습니다.
알려진 버그인지 누구든지 알고 있습니까? 분명히 그것은 행마다 검사하여 순서를 확인해야합니다. 다른 모든 열은 반환되는 NULL이며 값을 포함하는 ID 열입니다.
Greg의 게시물에서 "결과가 반환되는 순서를 테스트하는 중"이 내용이 지워지고 설명이 확인됩니다. 나는 AssetEqualsTable이 그렇게 할 것이라고 생각했다. 색인을 추가하면이 문제가 해결됩니다. 감사. –
명시 적으로 삽입 순서를 모델링하기 위해 테이블에서 열이없는'ROW_NUMBER()'를 어떻게 사용할 수 있는지 잘 모르겠습니다. @ 배리 킹 : 나는 인덱스가 도움이 될지 모르겠다. 결론 : SQL 테이블에 정의가 없기 때문에 * 테이블은 동일합니다. – onedaywhen