CollectionAssert.AreEquivalent失败.集合中的元素数不匹配



所以在我的测试类中,我有以下内容:

private static readonly List<Address> budapestStreet1Addresses = new List<Address>()
{
new Address(47.29, 19.04, "HU", "Budapest", "1111", "street1", "2"),
new Address(47.30, 19.06, "HU", "budapest", "1111", "street1", "3"),
new Address(47.31, 19.05, "HU", "BUDAPEST", "1111", "street1", "4"),
};
private static readonly List<Address> budapestStreet2Addresses = new List<Address>()
{
new Address(47.31, 19.05, "HU", "BUDAPEST", "1111", "street2", "5"),
};
private static readonly List<Address> budapestSTREET1Addresses = new List<Address>()
{
new Address(47.31, 19.05, "HU", "BUDAPEST", "1111", "STREET1", "6")
};
[TestMethod]
public void F4AGetAddressesOfStreetInCity()
{
using (var dbConn = TestDbHelper.CreateConnection())
{
var dbContext = TestDbHelper.CreateDbContext(dbConn);
addTestAddresses(dbContext);
var service = new AddressService(dbContext);
var foundBudapestStreet1Addresses = service.GetAddressesOfStreetInCity("budapest", "street1");
CollectionAssert.AreEquivalent(budapestStreet1Addresses, foundBudapestStreet1Addresses);
foundBudapestStreet1Addresses = service.GetAddressesOfStreetInCity("BudaPest", "street1");
CollectionAssert.AreEquivalent(budapestStreet1Addresses, foundBudapestStreet1Addresses);
var foundBudapestStreet2Addresses = service.GetAddressesOfStreetInCity("Budapest", "street2");
CollectionAssert.AreEquivalent(budapestStreet2Addresses, foundBudapestStreet2Addresses);
var foundBudapestSTREET1Addresses = service.GetAddressesOfStreetInCity("Budapest", "STREET1");
CollectionAssert.AreEquivalent(budapestSTREET1Addresses, foundBudapestSTREET1Addresses);
var foundBudapestStreeT1Addresses = service.GetAddressesOfStreetInCity("budapest", "streeT1");
Assert.AreEqual(0, foundBudapestStreeT1Addresses.Count);
var foundLondonAddresses = service.GetAddressesOfStreetInCity("London", "street1");
Assert.AreEqual(0, foundLondonAddresses.Count);
}
}

这就是实际的方法:

public List<Address> GetAddressesOfStreetInCity(string city, string street)
{
return dbContext.Addresses.Where(x => EF.Functions.Like(x.City, city) && EF.Functions.Like(x.Street, street)).ToList();
}

但是当我运行测试时,我得到以下消息:

CollectionAssert.AreEquivalent失败。集合中的元素数不匹配。

我做错了什么?

数据库中还有一些其他地址,可能来自以前的测试运行。

在带有CollectionAssert的行上放置一个断点,并检查这两个集合,这将揭开神秘面纱。

最新更新