ich eine Liste von Objekt haben wie untenIndexOf finden kein Element in einer Liste <> während Mock
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:
}
Wie ich die FindEighteenYearsOld
Methode verspottet haben es gibt ein Person
Objekt mit gleichen Staaten, die Geschenke in der personList
ist . Aber wenn personList.IndexOf()
ausgeführt wird, gibt es den Index -1 zurück, der 0 sein soll. Was soll ich tun.
Ihre 'Person' Klasse überschreibt nicht' Equals', die 'IndexOf' verwendet gleichen Wert zu finden. –
Warum haben Sie eine 'FindEightenYearsOld' Methode anstatt einer' FindByAge (18) '? – user3791372