我正在使用 Pivotal CRM,但我没有找到简单的方法为该软件的 ASR 编写单元测试代码。你有这个软件的编程测试经验吗?
编辑:我想到了一种简单但不完美的测试方式。但我愿意将赏金提供给任何提供最小洞察力的人。
我正在使用 Pivotal CRM,但我没有找到简单的方法为该软件的 ASR 编写单元测试代码。你有这个软件的编程测试经验吗?
编辑:我想到了一种简单但不完美的测试方式。但我愿意将赏金提供给任何提供最小洞察力的人。
好问题。我会在实现的方法上注入存根或模拟来设置测试。因此,如果我实现如下所示的 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();
}
}
对于将任何内容编程到 Pivotal CRM 中,我会三思而后行。CDC 只是不适应现代编程技术。将其视为“仅在绝对必要时进行调整”的平台,您会做得很好。
我并不是要严厉,但如果您在 stackoverflow.com 上发布有关 Pivotal CRM 的问题,那么您可能使用错了 Pivotal CRM。
我这样说是因为我亲身了解错误使用它所带来的痛苦。我用它工作了 6 年。
我找到的唯一可能的答案是将逻辑移至 ASR 调用的其他类。这样你就可以对类进行单元测试。ASR 变得更加复杂,只能作为集成测试的一部分进行测试。