В приложении .NET windows у меня есть класс с именем EmployeeManager. При создании экземпляра этот класс загружает сотрудников в список из базы данных, которая еще не завершила регистрацию. Я хотел бы использовать EmployeeManager в unit test. Однако я не хочу привлекать базу данных.
Из того, что я понимаю об этом сценарии, мне нужен интерфейс IEmployeeManager, который используется только для целей тестирования. Это не кажется правильным, поскольку интерфейс не имеет другого смысла. Тем не менее, это позволит мне создать тестовый класс EmployeeManager, который загружает сотрудников без привлечения базы данных. Таким образом, я могу назначить значения, которые в противном случае исходили из базы данных.
Правильно ли это, и нужно ли его исправлять? Mocking (Moq framework), кажется, использует много кода, просто для того, чтобы делать простые вещи, такие как присвоение свойства. Я не понимаю. Почему макет, когда я могу просто создать простой тестовый класс из IEmployeeManager, который предоставит мне то, что мне нужно?