1

我的业务逻辑层中有一个接受流的方法,该流在 GUI 中来自用户上传文件,我感兴趣的是哪种方法可以适当地测试该方法是否适当地使用此流来做出决策。

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

出于测试目的,我希望将模拟流注入此方法,但我发现在使用流时缺乏抽象。

直觉告诉我需要创建一个 Stream 包装器,这将允许我 DI 包装器的接口来测试我的逻辑与流 wapper 的交互。

最好的方法是什么?

4

2 回答 2

3

如果您只是想要一种传入“假”上传的方法,您可以在测试工具中构造一个MemoryStream并将其传入。

于 2009-02-04T03:02:35.327 回答
1

我也倾向于使用 MemoryStream。对于某些测试,您可能希望重载 Read 方法以返回少于请求的字节数。(我认为 MemoryStream 将始终返回请求的字节数,除非它到达流的末尾,但网络流甚至可以在流结束之前返回比请求更少的字节。)

于 2009-02-04T03:06:27.457 回答