Ho una classeMettere un metodo su una classe invece dell'intera classe usando Moq?
public interface IMyInterface
{
string MethodA();
void MethodB();
}
public class MyClass : IMyInterface
{
public string MethodA()
{
// Do something important
}
public void MethodB()
{
string value = MethodA();
// Do something important
}
}
voglio unit test MethodB, ma sto avendo difficoltà a pensare a come posso Mock MethodA
, pur mettendo in MethodB
utilizzando Moq. Moq deride l'interfaccia, non la classe, quindi non posso chiamare mock.Object.MethodB()
, giusto?
È possibile? Se é cosi, come?
Un'altra osservazione: in realtà usando Moq u può deridere la classe, ma ci sono alcuni requisiti sulle classi. La classe non può essere sigillata. e il metodo che viene deriso deve essere contrassegnato come virtuale. Inoltre, non può essere un metodo statico. – Artiom