我正试图开始在使用AWS S3存储桶的C#项目中实现单元测试。
尽管只是简单地进行了简要介绍,但我明白,几乎所有项目外部的东西都必须被嘲笑,以“保证”可预测的结果。
简而言之,我试图传递一个静态类(既抽象又密封)作为参数,将参数限制为我定义的接口(目前只包含AWSClientFactory.CreateAmazonS3Client(string, string, RegionEndpoint)
。
但是,我无法弄清楚如何通过引用(AWSClientFactory
)传递此类,并且通过广泛的研究,我认为没有任何方法可以这样做。
由于我需要通过同一个方法传递云另一个提供者(它将模仿S3 API),我认为这对于这个和传递通过实现的模拟类都是可接受的解决方案。接口
使用相同类型的结构实现此方法的最佳方法是什么,从而从不同的静态类调用相同的方法?
答案 0 :(得分:4)
您无法获取静态类的实例。因此,您无法获得对它的引用,因为没有任何内容可供参考。这就是为什么你不应该滥用静态类,如果你打算稍后编写单元测试。
要实现您的目标,您可以创建自己的界面,并进行此界面的一些实现。其中一个实现将包装AWSClientFactory
。