スレッドのリストでジョブ スケジューラに送信される一連のTask
s (つまり、コマンド パターン) があります。Task
特定のクラス(CreateTask
この例では )を受け取っていることを確認したい。perform_tasks!
それらは、スレッドに対処することになっているタスク オブジェクトのリストを取得するによってスケジュールされます。
これを rspec でテストするために、次のように設定しました。
it "should dispatch a Create Task" do
<... setup ... >
TaskScheduler.should_receive(:perform_tasks!) do |*args|
args.pop[0].should be_a CreateTask
end
<... invocation ... >
end
私は見つけましmatch_aray(...)
たが、タイプではなくコンテンツをテストするため、これをうまくテストする方法を理解できないようです。これをテストするためのより短い方法またはより良い方法はありますか? 基本的に、次のようなものがあります:
TaskScheduler.should_receive(:perform_tasks!).with(array_containing_a(CreateTask))