2015-05-18 4 views
0

У меня есть метод UpdateEmployees(), который обновляет данные всех сотрудников.Как покрыть заявления Linq от модульных тестов?

При написании модульного теста для этого метода он не покрывает заявление OrderBy(). Как я могу получить покрытие кода для заказа по инструкции.

Я использовал измерение единицы измерения Moq.

//This Method returns list of employee 
Public void UpdateEmployees() 
{ 
    var employees = _repository.GetAllEmployees().OrderBy(x => x.Name); 
    // Some Update operations below. 
} 

//Unit Test for GetAllEmployee Method. 
Public void UnitTest() 
{ 
    var employees = new Fixture.Build<Employee>().Createmany(5).ToList(); 
    var moqRepository = new Mock<IRepository>(MockBehavior.Strict); 
    moqRepository.Setup(r => r.GetAllEmployees()).Returns(employees) 

    var employee = new Employee(moqRepositort.Object); 
    employee.UpdateEmployees(); 
} 
+0

Try 'result.SequenceEqual (employees.OrderBy (е => e.Name));' – artm

+0

@artm - извинение я модифицированную метод. Мой метод не имеет типа возврата. Это недействительный метод. – TBAG

+0

Что вы имеете в виду, как получить покрытие кода? Если ваш метод использует содержимое 'employees' и есть как минимум два элемента, предложение OrderBy будет всегда выполняться. Как вы узнали, что этот код не распространяется? –

ответ

0

OrderBy бы покрываются, если это перечислено в список:

var employees = _repository.GetAllEmployees().OrderBy(x => x.Name).ToList(); 
Смежные вопросы