Entiendo que puedo probar que se producirá una llamada al método si llamo a un método de nivel superior, es decir:
public abstract class SomeClass()
{
public void SomeMehod()
{
SomeOtherMethod();
}
internal abstract void SomeOtherMethod();
}
Quiero probar que si llamo SomeMethod(), espero que SomeOtherMethod()se llame.
¿Estoy en lo cierto al pensar que este tipo de prueba está disponible en un marco burlón?

No, las pruebas simuladas suponen que está utilizando ciertos patrones de diseño comprobables, uno de los cuales es la inyección. En su caso, estaría probando
SomeClass.SomeMethodySomeOtherMethoddebe implementarse en otra entidad que necesita ser interconectada.Tu
Someclassconstructor se vería asíNew(ISomeOtherClass). Luego, se burlaría de élISomeOtherClassy establecería la expectativaSomeOtherMethodpara que se llame y verificara la expectativa.fuente
Aunque estoy de acuerdo en que la respuesta de @ Paul es el camino recomendado, solo quiero agregar un camino alternativo proporcionado por
moquno mismo.Dado que
SomeClassesabstractde hecho es mockable, peropublic void SomeMehod()no lo es. El punto es encontrar la manera de burlarse y de alguna manera invocar ese método y luego usarCallBasepropagar la llamada alSomeOtherMethod(). Puede sonar como un truco, pero en esencia es simple. Podría usarse en el caso si la refactorización propuesta no es posible.Luego, puede configurar
DummyMethod()para propagar la llamada configurando elCallBaseindicador.fuente