使用Orleans在类中使用Simple Injector DI进行C#中的MSTEST

时间:2018-09-25 20:29:31

标签: c# dependency-injection moq mstest orleans

感谢您在以下问题上的帮助。很抱歉,但是我感到很烦,我想尽我所能。

我需要测试一堂课。该类具有一些业务逻辑,并且使用Orleans。我有多种测试场景,希望自己实现,一旦扩展课程,将来某些场景将由其他场景实现。我正在使用本地计算机上的Orleans测试集群来测试该类,并且正在使用多个模拟程序。这些测试由MStest 2运行。

如果我正确理解,则注册模拟,解决它们然后覆盖它们的注册并注册一些新行为是一种反模式。 Simple Injector和其他DI容器也可以通过锁定容器来禁用它。

好的,因此在部署测试集群之前,我必须立即注册所有模拟的行为。所以现在我的模拟根据我作为参数传递的任意测试ID返回不同的结果。 Thia不可维护,如果有人希望添加新测试,则他必须了解我在识别模拟中的测试场景时所需要的任意系统。

此外,现在我有一些测试方法,该方法取决于我在ClassInitialize中运行的某些安装方法。因此,如果有人要添加新测试,则必须在代码中添加2种新方法,一种用于设置,另一种用于实际测试。这也将创建命名重复,因为测试方法和设置方法具有相似的名称。这使得代码更加难以维护。

此外,由于测试场景的设置方法与其测试方法之间需要一些数据共享,因此我需要使用几个静态变量。

直觉上,我想我对此有一个奇怪的方向,那是另一种方式。

在使用di,mocks(moq)和Orleans时,如何制作可维护,可扩展,奶嘴的方法,请问您一个建议?

谢谢

0 个答案:

没有答案