Я понимаю основы того, как проводить модульное тестирование, однако я часто испытываю трудности с поиском значимых вещей для тестирования.Я считаю, что я должен создать фальшивую реализацию и внедрить ее в потребителя.У меня есть класс обслуживания, отвечающий за подписку (с использованием веб-служб Exchange (EWS)) на Exchange 2010 с запросом обновлений для новой почты.Чтобы отделить мою реализацию подписки от самой службы, я решил внедрить реализацию в службу.Ниже то, что у меня сейчас есть.Я пропустил код, касающийся конкретно взаимодействия с Exchange.
// Not a big fan of having two identical interfaces...
public interface IStreamingNotificationService
{
void Subscribe();
}
public interface IExchangeService
{
void Subscribe();
}
public class StreamingNotificationService : IStreamingNotificationService
{
private readonly IExchangeService _exchangeService;
public StreamingNotificationService(IExchangeService exchangeService)
{
if (exchangeService == null)
{
throw new ArgumentNullException("exchangeService");
}
_exchangeService = exchangeService;
}
public void Subscribe()
{
_exchangeService.Subscribe();
}
}
public class ExchangeServiceImpl : IExchangeService
{
private readonly INetworkConfiguration _networkConfiguration;
private ExchangeService ExchangeService { get; set; }
public ExchangeServiceImpl(INetworkConfiguration networkConfiguration)
{
if (networkConfiguration == null)
{
throw new ArgumentNullException("networkConfiguration");
}
_networkConfiguration = networkConfiguration;
// Set up EWS
}
public void Subscribe()
{
// Subscribe for new mail notifications.
}
}
В частности, как мне создать содержательный модульный тест, чтобы подписка работала так, как должна?