créer un objet MOQMoq et les paramètres que vous passez
passe à ma classe
appel et passer dans un objet.
Comment puis-je avoir accès à cet objet pour voir si les bonnes propriétés sont définies?
créer un objet MOQMoq et les paramètres que vous passez
passe à ma classe
appel et passer dans un objet.
Comment puis-je avoir accès à cet objet pour voir si les bonnes propriétés sont définies?
Si je lis correctement votre question, vous semblez avoir une situation comme celle-ci?
public void DoTheCalculation(ICalculator calculator) {
calculator.Calculate(this /* Or any other object */);
}
Dans ce cas, vous pouvez faire valoir sur les arguments transmis à une interface Raillé en utilisant la méthode It.Is qui accepte un prédicat:
[TestMethod]
public void DoTheCalculation_DoesWhateverItShouldDo() {
Mock<ICalculator> calcMock = new Mock<ICalculator>();
CalculationParameters params = new CalculationParmeters(1, 2);
params.DoTheCalculation(calcMock.Object);
calcMock.Verify(c => c.Calculate(It.Is<CalculationParameters>(
c => c.LeftHandSide == 1
&& c.RightHandSide == 2));
}
Vous utilisez la méthode .VerifySet()
sur l'objet maquette pour cela. Par exemple
mockObject.VerifySet(o => o.Name = "NameSetInMyClass");
S'il n'était pas défini correctement, il déclenchera une exception.
En savoir plus dans le quick start here.
Votre question est un peu confuse, on ne sait pas de quel objet vous parlez dans la dernière phrase. Toutefois, chaque wrapper Moq a une propriété "Object" du type que vous vous moquez. Vous pouvez y accéder en regardant simplement cette propriété.
var myMock = new Mock<MyObj>();
var myProp = myMock.Object.MyProperty;
Vous êtes de passage de la maquette réelle à votre classe ou la maquette .objet? –
Voici ce que je veux faire: MyMock.MyMethod (MyObjectINeed); Comment puis-je obtenir MyObjectINeed? – zachary
Pourquoi ne pas simplement garder une référence? var myObj = myObjectINeed; MyMock.MyMethod (myObj); Assert.That (myObj)! = Null. – womp