geography 列を含む 2 つのテーブルを作成し、tSQlt.AssertEqualsTable を使用すると、テストは次のように失敗します。
失敗しました: データ型の演算子が無効です。演算子が等しい、型が地理に等しい{,1}
tSQLt がテーブル比較の地理データ型をサポートしているかどうかは誰にもわかりませんか?
geography 列を含む 2 つのテーブルを作成し、tSQlt.AssertEqualsTable を使用すると、テストは次のように失敗します。
失敗しました: データ型の演算子が無効です。演算子が等しい、型が地理に等しい{,1}
tSQLt がテーブル比較の地理データ型をサポートしているかどうかは誰にもわかりませんか?
その後、tSQLt が更新され、互換性のないデータ型に関するより詳細なエラー メッセージが含まれるようになりました。互換性のないデータ型のいずれかを使用すると、次のメッセージが表示されます。
(Error) The table contains a datatype that is not supported for
tSQLt.AssertEqualsTable. Please refer to http://tsqlt.org/user-
guide/assertions/assertequalstable/ for a list of unsupported datatypes.
互換性のないタイプのリストは次のとおりです。
ただし、ほとんどの場合、回避策があります。次の例のように、比較する前に値を互換性のあるデータ型に変換できます。
EXEC tSQLt.NewTestClass 'DeliveryTests';
GO
CREATE PROCEDURE DeliveryTests.[test Order is matched to Customer location]
AS
BEGIN
EXEC tSQLt.FakeTable 'Sales.Customers';
EXEC tSQLt.FakeTable 'Sales.Orders';
INSERT INTO Sales.Customers (CustomerId, Location)
VALUES (1, geography::Point(47.65100, -122.34900, 4326));
INSERT INTO Sales.Orders (OrderId, CustomerId)
VALUES (5, 1);
SELECT OrderId, Location.ToString() AS Location
INTO DeliveryTests.Actual
FROM Delivery.OrderDestinations;
SELECT TOP(0) *
INTO DeliveryTests.Expected
FROM DeliveryTests.Actual;
INSERT INTO DeliveryTests.Expected (OrderId, Location)
VALUES (5, geography::Point(47.65100, -122.34900, 4326).ToString());
EXEC tSQLt.AssertEqualsTable 'DeliveryTests.Expected',
'DeliveryTests.Actual';
END;
GO
現在サポートされていませんが、次のリリースまたは将来のリリースに含まれる予定です。