将引用传递给C#静态类

时间:2013-11-08 07:46:22

标签: c# unit-testing amazon-web-services abstract-class static-classes

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

尽管只是简单地进行了简要介绍,但我明白,几乎所有项目外部的东西都必须被嘲笑,以“保证”可预测的结果。

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

但是,我无法弄清楚如何通过引用(AWSClientFactory)传递此类,并且通过广泛的研究,我认为没有任何方法可以这样做。

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

使用相同类型的结构实现此方法的最佳方法是什么,从而从不同的静态类调用相同的方法?

1 个答案:

答案 0 :(得分:4)

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

要实现您的目标,您可以创建自己的界面,并进行此界面的一些实现。其中一个实现将包装AWSClientFactory