我正在编写一组向导来增强 IDE 中的源代码编辑,并且通过IOTAEditPosition
我从BorlandIDEServices
.
我怎样才能对我的方法进行自动化测试,以便我可以断言文本操作是正确的?IOTAEditPosition
不能被存根或模拟,因为我想模拟生产代码的相同环境(真实的IOTAEditPosition
自动处理缩进,换行符,它有几种方法,比如检查一个字符是标识符还是单词分隔符,文本搜索机制等等,它确实做了很多特定于 IDE 编辑器的事情)。
在这种情况下,我不关心像Unit vs Integration test这样的清教主义。如果你愿意,可以称之为集成测试,事实是我的代码完全依赖于它的行为,IOTAEditPosition
我需要一起测试它们。
只是为了让它更清楚一点。在我看来,理想的断言应该是这样的:
// DUnit test case
MyObject.LoadText(SampleText);
MyObject.ManipulateText;
CheckEquals(ExpectedManipulatedText, MyObject.GetManipulatedText);
由于实际的底层文本操作是由 IOTAEditPosition 完成的,因此我需要它的实现,其行为与我在生产代码中得到的完全一样。