0
public class Person
{
public string Name {get; set;}
public int Age {get; set;}
}
public class SomeClass
{
public int DoSomething()
{
int result;
List<Person> personList = new List<Person>();
personList.Add(new Person { //with 1 object, just to keep simple
Name = "Someone",
Age = 18});
Person eighteenYearsOld = _checkAge.FindEighteenYearsOld (personList);
int index = personList.IndexOf (eighteenYearsOld);
//do something
return result;
}
}
[TestMethod]
public void DoSomething_Test()
{
//Given:
//When: I call SomeClass object
Person eightnneYears = new Person {
Name = "Someone",
Age = 18};
_mockCheckAge.Setup (x => x.FindEighteenYearsOld(It.IsAny<List<Person>>())).Returns(eightnneYears);
_someClass = new SomeClass (_mockCheckAge.Object);
int result = _someClass.DoSomething();
//Then:
}
對象的列表正如我嘲笑FindEighteenYearsOld
方法返回與相同狀態的Person
對象,它是在personList
禮物。但是當personList.IndexOf()
執行時,它返回索引-1,假設爲0.我應該怎麼做。
你'Person'類沒有重載'Equals',其中'IndexOf'用它來查找相同的值。 –
爲什麼有'FindEighteenYearsOld'方法而不是'FindByAge(18)'? – user3791372