私はまだTDDへの道を辿っています。あなたのメソッドが多くのタスクを実行するように設計されている場合にTDDを使用する方法
ファイルが共有フォルダにアップロードされたときに起動されたSunSystemBrokerがあるとします。このブローカーは、このファイルを開き、そこからレコードを抽出し、別のシステムで関連する支払いを見つけようとし、最後にワークフローを呼び出すように設計されています。
IBroker.Process()メソッドを開発するためにTDDを実行したい場合はどうすればよいですか?
注:ブローカーは、IBrokerを継承し、コンソールアプリケーション(プラグインなど)でロードされる独立したアセンブリです。
このコンソールは、各ブローカーの起動を担当しています。
public interface IFileTriggeredBroker : IBroker
{
FileSystemTrigger Trigger { get; }
void Process(string file);
}
public class SunSystemPaymentBroker : IFileTriggeredBroker
{
private readonly IDbDatasourceFactory _hrdbFactory;
private readonly IExcelDatasourceFactory _xlFactory;
private readonly IK2DatasourceFactory _k2Factory;
private ILog _log;
public void Process(string file)
{
(...)
// _xlFactory.Create(file) > Extract
// _hrdbFactory.Create() > Find
// Compare Records
// _k2Factory.Create > Start
}
}
各メソッドを個別にテストされています。
は セブ
これが実際にあなたの質問であるかどうかわかりません...私はいつも同じような質問をしてきました。 'Foo'、' Bar'、 'Baz'というメソッドがあり、それらは完全に自己完結型であり、単独で動作しますが、望ましい動作のためにそれらを連鎖させる必要がある場合、私は"連鎖 "責任はありますが、私は本当にこれらのクラスのクラスを何に呼び出すべきかは決して確かではありません。そして、それらをテストする限りでは、単に "Foo"、 "Bar"、 "Baz"から必要なメソッドをすべて呼び出す "chainer"を確保するだけですか? – Kritner