特定の機能をテストしたい。その関数は、保護されている別のクラスの静的メソッドを呼び出しているため、外部からアクセスすることはできません。コンポーネントレベルのテストを行っているので、データベースにアクセスしたくありません。したがって、静的関数内にある場合、データベースへの特定の呼び出しをモックすることは可能ですか。
//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()
、デリゲート行に移動する前に、静的ブロックが呼び出されるため、データベースにアクセスして例外がスローされます。