【发布时间】:2020-02-17 12:43:46
【问题描述】:
我有一个带有静态方法的非静态类,我想填充它。
public class MyClass
{
static MyClass()
{
//do constructor things
}
public static void MyMethod(string str)
{
//do something
}
}
这个静态方法是从我要测试的代码的某些部分调用的(MyClass.MyMethod("some string")),但我对 MyMethod 的行为不感兴趣。我需要垫它。 我的尝试是:
MyClassNamespace.Fakes.ShimMyClass.MyMethod = ("some string") => {};
但是 MyMethod 丢失了,我相信是因为该类不是静态的。
我怎样才能像静态类一样填充它? 我已经读过可以填充构造器并模拟一些方法,也许这是一个更好的选择,但我不知道该怎么做。
【问题讨论】:
-
您的意思是公共静态字段或属性,例如:
public static Action<string> MyMethod = s => {}; -
对不起,我不明白。你能更清楚地向我解释一下吗?你的意思是我需要实现一个调用方法的属性?
-
U,您需要像公共变量这样的东西,您可以在其中存储自定义方法/操作。我不确定你是不是这个意思。
标签: c# microsoft-fakes shim