IDE でのソース コード編集を強化するための一連のウィザードを作成しています。テキスト操作はIOTAEditPosition
から取得しBorlandIDEServices
ます。
テキスト操作が正しく行われたと断言できるように、メソッドに対するテストを自動化するにはどうすればよいですか? IOTAEditPosition
実稼働コードの同じ環境をシミュレートしたいので、スタブ化またはモック化することはできません (実際にIOTAEditPosition
は、インデント、改行を使用していくつかの自動作業を行います。文字が識別子または単語区切り文字であるかどうかを確認するなどのいくつかの方法があります、テキスト検索メカニズムなど、実際には IDE エディターに固有の多くのことを行います)。
この場合、 Unit vs Integration testのような純粋主義は気にしません。必要に応じて統合テストと呼んでください。実際、私のコードは完全に依存しており、の動作に非常に敏感でIOTAEditPosition
あり、それらを一緒にテストする必要があります。
もう少しわかりやすくするために。私の考えでは、理想的なアサーションは次のようなものです。
// DUnit test case
MyObject.LoadText(SampleText);
MyObject.ManipulateText;
CheckEquals(ExpectedManipulatedText, MyObject.GetManipulatedText);
実際の基礎となるテキスト操作は IOTAEditPosition によって行われるため、実稼働コードで取得したものとまったく同じように動作する実装が必要です。