У меня есть приложение do tnet 3.1 core web api и я хочу использовать xUnit. В данном случае я хочу протестировать только методы publi c, НО у меня есть несколько частных методов, которые либо обращаются к базе данных, чтобы вернуть данные, либо совершают остальной вызов внешней службе.
Вопрос:
Я НЕ пытаюсь проверить закрытый метод, но как я могу подделать возвращаемые данные приватных методов, чтобы при вызове моего метода publi c приватный метод, я могу вернуть поддельный набор данных, чтобы мой метод publi c и вычисления могли быть проверены?
Заранее спасибо!
Обновление Здесь это пример того, что я пытаюсь сделать.
public class FooRepository{
public MyObject CalculateValues{
var myReturnObject = new MyObject();
var crewSalaries = GetCrewSalaries(myCrew)
myObject.TotalSalary = crewSalaries.Sum(x=>x.salary)
// Insert other calculations here
}
private MyObject GetCrewSalaries(List<Crew> myCrew){
return dbContext.Where(x=>x.id == myCrew.id).ToList();
}
}
Public Class FooRepositoryTest{
[Fact]
public Test1()
{
var fooClass = new fooClass();
// mock or hijack fooClass.GetCrewSalaries, so that I can return fake data
var result = fooClass.CalculateValues();
// assert statement here
}
private GetFakeSalaryData()
{
return new List<CrewSalaries>{
[
id:1,
salary:23
],
[
id:2,
salary:23.1
],
}
}
}