2つのコレクションが等しいかどうかを確認したいテストシナリオがあります。クラスを見つけましたMicrosoft.VisualStudio.QualityTools.UnitTesting.CollectionAssertが、でのみ機能しICollection<T>ます。私はEntityFrameworkのリポジトリをテストしているので、IObjectSet<T>sを比較する必要があるので、それは実行されません-IObjectSet<T>は実装されませんICollection<T>。
このクラスを使用してコレクションを比較する方法はありますか、それとも独自の実装を作成する必要がありますか?IEnumerable<T>(そして、コレクションの「基本インターフェイス」であるため、Microsoftチームが代わりにクラスを機能させなかったのはなぜですか?)
編集:これは私のテストコードです:
// Arrange
var fakeContext = new FakeObjectContext();
var dummies = fakeContext.Dummies;
var repo = new EFRepository<DummyEntity>(fakeContext);
// Act
var result = repo.GetAll();
// Assert
Assert.IsNotNull(result, NullErrorMessage(MethodName("GetAll")));
Assert.IsInstanceOfType(result, typeof(IEnumerable<DummyEntity>), IncorrectTypeMessage(MethodName("GetAll"), typeof(IEnumerable<DummyEntity>)));
CollectionAssert.AreEqual(dummies.ToList(), result.ToList());
最後の行のCollectionAssert.AreEqual呼び出しは失敗し、インデックス0の要素が等しくないことを示しています。私は何が間違っているのですか?