我正在使用 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 通过该测试,以便可以访问所有代码。如果这是不可能的,是否可以让 Pex 为其中一项测试采用函数参数的默认值(我认为如果它不存在,这将是一个很好的功能)。
谢谢