Отличный вопрос. Я бы вставлял заглушки или насмешки в реализованные методы для настройки теста. Так что, если я реализую интерфейс IRFormScript, как показано ниже. Я мог бы использовать заглушку, которая реализует интерфейс IRForm, чтобы настроить ожидания для объекта формы, который вставляется в мои методы. Некоторые из этих аргументов также являются строками, так что это легко. Вы также должны были бы заглушить любые другие интерфейсы для Pivotal, чтобы протестировать свою функциональность, фактически не затрагивая реальную систему (IRSystem7, DataAccess и т. Д.). Брэндон Джойс
public class TDD : Pivotal.Interop.RDALib.IRFormScript
{
public object AddFormData(Pivotal.Interop.RDALib.IRForm pForm, object Recordsets, ref object ParameterList)
{
throw new NotImplementedException();
}
public void DeleteFormData(Pivotal.Interop.RDALib.IRForm pForm, object RecordId, ref object ParameterList)
{
throw new NotImplementedException();
}
public void Execute(Pivotal.Interop.RDALib.IRForm pForm, string MethodName, ref object ParameterList)
{
throw new NotImplementedException();
}
public object LoadFormData(Pivotal.Interop.RDALib.IRForm pForm, object RecordId, ref object ParameterList)
{
throw new NotImplementedException();
}
public object NewFormData(Pivotal.Interop.RDALib.IRForm pForm, ref object ParameterList)
{
throw new NotImplementedException();
}
public void NewSecondaryData(Pivotal.Interop.RDALib.IRForm pForm, object SecondaryName, ref object ParameterList, ref Pivotal.Interop.ADODBLib.Recordset Recordset)
{
throw new NotImplementedException();
}
public void SaveFormData(Pivotal.Interop.RDALib.IRForm pForm, object Recordsets, ref object ParameterList)
{
throw new NotImplementedException();
}
public void SetSystem(Pivotal.Interop.RDALib.RSystem pSystem)
{
throw new NotImplementedException();
}
}