Например:
public class ThirdPartyClass
{
public void DoSomething() { ... }
}
// Mock framework generated class
public class MockThirdPartyClass : ThirdPartyClass
{
public new void DoSomething() { // Mock user's deletegate goes here }
}
Я подозреваю, что проблема в том, что тестируемый класс использует базовый класс для своих переменных / параметров, и, следовательно, вызовы метода mocked-класса переходят к базовой версии вместотеневой версии:
public class MyClass
{
private ThirdPartyClass tpc;
public MyClass() { }
public MyClass(ThirdPartyClass tpc)
{
this.tpc = tpc;
}
public void MyClassDoesSomething()
{
this.tpc.DoSomething(); // Bypasses MockThirdPartyClass shadow method
}
Это правильно?