C#-如何模拟这个.GetType()程序集

C#-如何模拟这个.GetType()程序集,c#,.net,unit-testing,C#,.net,Unit Testing,在我正在编写的代码中,我被迫测试一个方法,其中有这样一个调用: this.GetType().Assembly.GetTypes().Where(x => ...); 我想模拟此调用,以便在调用时从this.GetType().assembly检索我选择的程序集 在程序集中,我将使用假类型进行断言 我正在尝试的方法(仍然没有成功)是使用垫片,如前所述 有没有办法实现我的目标 最后,请注意,我知道这不是进行单元测试的正确方法。通常,我测试的类都是使用我可以轻松模拟的依赖项创建的。这是一个例

在我正在编写的代码中,我被迫测试一个方法,其中有这样一个调用:

this.GetType().Assembly.GetTypes().Where(x => ...);
我想模拟此调用,以便在调用时从
this.GetType().assembly
检索我选择的程序集
在程序集中,我将使用假类型进行断言

我正在尝试的方法(仍然没有成功)是使用垫片,如前所述

有没有办法实现我的目标


最后,请注意,我知道这不是进行单元测试的正确方法。通常,我测试的类都是使用我可以轻松模拟的依赖项创建的。这是一个例外,因为这是解决方案范围内的实现,我不允许更改它。

如果您无法更改测试中的代码,您可以使用类似或的框架。这些框架使用探查器挂钩,因此可以重定向所做的每个函数调用,甚至是对第三方库的调用


这将允许您将调用重定向到
This.GetType().Assembly
的getter,并返回一个预设的程序集列表。

您是否能够重构该代码?@Nkosi否:(如果是,我早就这么做了:)