Moqautomocker et paramètres du constructeur primitif
-
12-11-2019 - |
Question
Je suis un utilisateur avide du Structuremap Moqautomocker, parfois, nous rencontrons un "vieil ami" de la nôtre.Supposons un "validateur" de classe
public class Validator
{
private string _connectionString;
private IEventMachine _eventMachine;
public Validator(string connectionString, IEventMachine eventMachine)
{
_connectionString = connectionString;
_eventMachine = eventMachine;
}
}
La classe ci-dessus n'a pas d'importance, en fait, cela augmentera probablement quelques sourcils, je ne le fais que pour ce post, car je ne pouvais pas penser à un meilleur exemple du bout de mon nez.Le point est qu'il contient un mélange de types de données primitifs ( connexionstring ) et interfaces ( EventMachine ) - pendant les tests unitaires, j'ai généralement défini mes attentes, telles que:
[TestMethod]
public void Validate_WhenCalled_PublishesEnterEvent()
{
// Arrange
var Instance = new MoqAutoMocker<Validator>();
var eventMachineMock = Mock.Get(AutoMock.Get<IEventMachine>());
// Act
Instance.Validate();
// Assert
eventMachineMock.Verify(m => m.Publish( It.IsAny<string>(), Times.Once());
}
Alors, la question est: Ce qui précède ne fonctionnera pas, car Moqautomocker n'accepte pas l'argument ConnectionsRing, car il ne peut pas trouver une interface pour celui-ci (ou toute autre primitive à ce sujet).Ma question est simplement: y a-t-il un moyen de dire Moqautomocker quelle devrait être cette valeur?
À l'avance, merci de la lecture.
La solution
Non, je ne crois pas qu'il y a un moyen - c'est une limitation de l'automocuteur.
Nous avons tendance à éviter les paramètres du constructeur primitif en faveur des objets de réglage (voir Comment nous gérons la configuration d'application )