如何TDD复合异步过程/任务

时间:2015-04-17 23:10:39

标签: actionscript-3 asynchronous tdd task

我想TDD复合异步进程/任务,但我不知道该怎么做。

这个过程是这样的:

UploadItem
  CreateItemOnServer
  UploadMedia
    IterateAndDo
      UploadFile
  UpdateLocalDB

CreateItemOnServer向服务器发送命令并返回项ID和一些元数据。然后,UploadMedia使用项目ID和媒体列表迭代该列表并上传所有媒体文件。完成后,将使用itemID和服务器元数据更新localDB。

UploadItem可以像这样使用:

var uploadItem:UploadItem = new UploadItem(itemToUpload);
uploadItem.addEventListener("onUpdate", onUpdate);
uploadItem.addEventListener("onError", onError);
uploadItem.addEventListener("onComplete", onComplete);
uploadItem.start();
  • 如何知道CreateItemOnServer在完成后将正确的参数传递给UploadMedia?什么模拟/间谍?
  • 对于像这样的流程,这是正确的解决方案吗?
  • 我怎么知道onUpdate是从UploadFile文件#1发送更新?
  • 我应该如何实例化UploadItem类?

感觉就像强制依赖注入一样,但也许是正确的。

new UploadItem(
    itemToUpload, 
    new CreateItemOnServer(), 
    new UploadMedia(
        new IterateAndDo(
            new UploadFile())), 
    new UpdateLocalDB()
);  

顺便说一下,我正在使用ActionScript 3,FlexUnit和mockolate。

提前致谢。

修改1

发现如何在start()方法之前测试setData():

var s:Sequence = new Sequence();
expect(uploadFileMock.setData(expectedData)).once().inSequence(s);
expect(uploadFileMock.start()).once().inSequence(s);

0 个答案:

没有答案