Я строю модульное тестирование с использованием Pex. Моя проблема не в том, что все ветви кода тестируются, Pex продолжает генерировать значения параметров, которые не выполняются в одном и том же состоянии, из-за которого весь код после этого условия не запускается.
мой метод выглядит примерно так:
public void SetUp(DbSyncScopeDescription SyncScopeDesc, BasicInfo info, string dbContext = "MyDBContext")
{
// <pex>
Contracts validation
// </pex>
string localDbConnStr = string.Empty;
//this condition never get a parameter that results in true
if (IsContextExist(dbContext))
{
localDbConnStr = ConfigurationManager.ConnectionStrings[dbContext + "Context"].ConnectionString;
}
else
{
throw new MissingFieldException("dbcontext does not exist");
}
// This part is never being reached
ProvisionLocalScope(SyncScopeDesc, info.FarmId, localDbConnStr);
info.Tables = GetSyncTablesAsSyncTableInfo(SyncScopeDesc);
AdminOrm.Create(info.ToORM(), String.Format("name={0}AdminEntities", dbContext));
}
Интересно, можно ли попросить Пекса пройти этот тест, чтобы весь код был достигнут.
если это невозможно, можно ли заставить Pex принимать значения параметров функции по умолчанию для одного из тестов (я думаю, что это будет хорошей функцией, если ее нет).
Спасибо