我可以在DUnit测试中使用实现ToolsAPI的IOTAEditPosition的真实对象吗?

时间:2013-05-24 02:48:46

标签: delphi dunit toolsapi

我正在编写一组向导来增强IDE中的源代码编辑,文本操作是通过我从IOTAEditPosition获得的BorlandIDEServices完成的。

如何根据我的方法自动化测试,以便我可以断言文本操作是否正确完成? IOTAEditPosition不能被存根或模拟,因为我想模拟生产代码的相同环境(真正的IOTAEditPosition做一些自动工作的缩进,换行,它有几个方法,比如检查看看如果一个字符是一个标识符或一个单词分隔符,文本搜索机制等,它确实做了很多特定于IDE编辑器的事情。)

在这种情况下,我不关心单元与集成测试之类的清教主义。如果你愿意,可以称之为集成测试,事实是我的代码完全取决于IOTAEditPosition的行为是非常明智的,我需要一起测试它们。

只是为了让它更清晰一些。在我看来,理想的断言就像是:

// DUnit test case
MyObject.LoadText(SampleText);
MyObject.ManipulateText;
CheckEquals(ExpectedManipulatedText, MyObject.GetManipulatedText);

由于实际的底层文本操作是由IOTAEditPosition完成的,我需要它的实现,其行为与我在生产代码中完全相同。

0 个答案:

没有答案