Я пишу компоненты на стороне клиента в предоставленной среде, и мне нужно иметь возможность модульного тестирования моих компонентов.Компоненты написаны с использованием шаблона MVP (Model-View-Presenter), я хочу использовать PEX для автоматической генерации модульных тестов для моих докладчиков.
Ниже приведен код докладчика.
public partial class CompetitorPresenter : PresenterBase
{
private readonly ICompetitorView _view;
public IGlobalDataAccess GlobalDataAccess;
public IGlobalUI Globals;
public SystemClient Client;
public bool DeleteRecord()
{
if (_view.CompetitorName != "Daniel")
return false;
if (Client.SystemName != "Ruby")
return false;
return true;
}
}
Проблема, с которой я столкнулся, состоит в том, что объект SystemClient
предоставляется платформой, и я не могу использовать фабричный класс для создания экземпляра SystemClient
.Поэтому, когда я запускаю PEX для автоматической генерации модульных тестов, я должен сказать PEX игнорировать SystemClient
, в результате этого метод DeleteRecord
не полностью покрыт, поскольку строка Client.SystemName != "Ruby"
не тестируется.
Поскольку у меня есть фиктивный объект MSystemClient
(созданный с использованием родинок), мне интересно, мог бы я где-нибудь в конфигурации указать PEX использовать MSystemClient
и позволить PEX автоматически генерировать тестовые случаи для полного охвата этого метода.