1

我正在尝试开始在使用 AWS S3 存储桶的 C# 项目中实施单元测试。

尽管只是简单地对其进行了真正的研究,但我知道几乎任何与项目无关的东西都必须被嘲笑以“保证”可预测的结果。

简而言之,我试图将一个静态类(既是抽象类又是密封类)作为参数传递,它将参数限制为我定义的接口(目前仅包含AWSClientFactory.CreateAmazonS3Client(string, string, RegionEndpoint).

但是,我无法弄清楚如何让这个类通过引用 ( AWSClientFactory),并且通过广泛的研究,我看不到任何这样做的方法。

由于我将需要通过相同的方法通过云另一个提供程序(它将模仿 S3 API),所以我认为这将是一个可接受的解决方案,对于这个和通过接口实现的传递模拟类。

用相同类型的结构实现这一点的最佳方法是什么,即从不同的静态类调用相同的方法?

4

1 回答 1

4

您无法获取静态类的实例。因此,您无法获得对它的引用,因为没有什么可引用的。这就是为什么您不应该滥用静态类,如果您打算稍后编写单元测试。

要实现你想要的,你可以制作自己的接口,并对这个接口做一些实现。此实现之一将包装AWSClientFactory.

于 2013-11-08T07:51:29.533 回答