我想测试一个特定的功能。该函数调用了受保护的不同类的静态方法,因此无法从外部访问。当我在做组件级测试时,我不想访问数据库。如果它在静态函数中,是否可以模拟对数据库的特定调用。
//I want to test this function
public void testing
{
Abc.instance.Add();
}
class Abc
{
public static readOnly instance = new Abc();
Abc()
{
createInstance();
}
public void createInstance()// I want to mock this function
{
//calls to the database
}
public void Add()
{
//...
}
}
但即使我使用委托来模拟createInstance()
,甚至在去委托线之前,静态块被调用,从而命中数据库并引发异常。