2009-02-04 108 views
1

我在我的業務邏輯層中有一個接受流的方法,它在GUI中來自用戶上傳文件,我對哪種測試適當地測試方法感興趣使用這個流來做出決定。測試IO.Stream交互

public Sub Initialize(ByVal uploadStream As Stream) 
    ''// Logic using uploadStream 
End Sub 

爲了測試的目的,我希望DI可以將模擬流應用到這種方法中,但是我發現每當使用流時都會缺乏抽象。

直覺告訴我需要創建一個Stream包裝器,它將允許我使用包裝器的接口來測試我的邏輯與流wapper的交互。

什麼是繼續進行的最佳方式?

回答

3

如果你只是想辦法在一個「假」上傳過,你可以在你的測試工具構建MemoryStream,並通過在。

1

我也傾向於使用一個MemoryStream。對於某些測試,您可能希望重載Read方法以返回小於請求的字節數。 (我認爲一個MemoryStream將總是返回請求的字節數,除非它達到了數據流的末尾,但是網絡數據流可以返回比在數據流結束之前所請求的更少的字節。)