J'aime utiliser le comportement DefaultMock.Mock
de Moq. Maintenant, j'ai le problème, que dans la hiérarchie des objets ainsi mocked un objet d'une classe abstraite sans un constructeur par défaut. Quand quelqu'un essaie maintenant d'obtenir cet objet, je reçois une exception. Existe-t-il un moyen de contourner ce problème?Hinder Moq pour simuler des classes abstraites sans constructeur par défaut?
Un court exemple:
//The abstract class
public abstract class Abstract
{
protected Abstract(string foo)
{
}
}
//The mocked interface
public interface ITestClass
{
Abstract Abstract { get; }
}
//The mock
internal class TestClass
{
public static void Main()
{
Mock<ITestClass> testMock = new Mock<ITestClass> {DefaultValue = DefaultValue.Mock};
Abstract foo = testMock.Object.Abstract;
}
}
Le problème se produit dans la ligne Abstract foo = testMock.Object.Abstract;
l'exception est la suivante:
System.ArgumentException was unhandled
HResult=-2147024809
Message=Can not instantiate proxy of class: UsedLibrary.Abstract.
Could not find a parameterless constructor.
Parametername: constructorArguments
Source=Castle.Core
ParamName=constructorArguments
Il est difficile de comprendre ce que vous demandez. Pouvez-vous nous fournir un [Short, Self Contained, Correct, Compilable, Example] (http://sscce.org), s'il vous plaît? –
Vous devez également inclure des détails sur l'exception. –
Ajout d'un exemple – Yggdrasil