단위 테스트를 위해 주입 된 인터페이스가 있습니다. 문제의 메서드가 작동하지만 반환 된 샘플 데이터가 완전하고 정확하다는 것을 확인하는 단위 테스트를 작성하려고합니다. 내 테스트는 내게 맞는, 심지어 결과가 동일하게 보이지만 "CollectionAssert.AreEquivalent failed"로 테스트가 실패합니다. 예상 컬렉션에 1 번 발생했습니다. 실제 컬렉션에는 0 번 발생했습니다. " 객체의CollectionAssert.AreEquivalent failed ... 이유를 알아낼 수 없습니다.
[TestMethod]
public void Should_Get_All_Amenities()
{
var amenitiesRep = _ninjectKernel.Get<IAmenityRepository>();
var amenities = amenitiesRep.GetAmenities();
var expected = new List<Amenity>
{
new Amenity() {Id = 1, Name = "Pool", Category = "resort"},
new Amenity() {Id = 2, Name = "Hottub", Category = "resort"},
new Amenity() {Id = 3, Name = "Steamroom", Category = "unit"}
};
Assert.IsNotNull(amenities);
Assert.IsTrue(amenities.Count() == 3);
CollectionAssert.AreEquivalent(expected, amenities);
}
나는 CollectionAssert에 제대로 설치되어있는 모든 데이터를 확인하실 수 있습니다
var amenities = new List<Amenity>
{
new Amenity() {Id = 1, Name = "Pool", Category = "resort"},
new Amenity() {Id = 2, Name = "Hottub", Category = "resort"},
new Amenity() {Id = 3, Name = "Steamroom", Category = "unit"}
};
var mockAmenitiesRep = new Mock<IAmenityRepository>();
mockAmenitiesRep.Setup(_m => _m.GetAmenities()).Returns(amenities);
Kernel.Bind<IAmenityRepository>().ToConstant(mockAmenitiesRep.Object);
(내 TestRepository에서 관련 코드), 모든 필드가 1로 1 일치하도록 표시, 같은 번호, 같은 객체 유형이 없으므로 테스트가 실패한 이유를 놓쳤습니다.
(편집 : 라인의 코드가 실패 CollectionAssert입니다)
Amenity.Equals 메소드는 어떤 모습입니까? –
Amenity.Equals 메소드를 지정하지 않았습니다. (나는 하나의 예를 보지 못했지만이 단위 테스트 형식을 구현하는 데있어서 실제로 좋은 가이드를 찾지 못했습니다. 그래서 제가 필요하지 않다는 것을 알았습니다.) – RualStorge