J'ai une question à propos de Rhino Mock.Question à propos de Rhino Mock (RhinoAutoMocker)
J'essaie de mettre une restriction sur les méthodes qui pourraient être appelées à partir de la méthode testée.
Disons que j'ai une méthode que je suis en train d'écrire le test unitaire contre comme ceci:
public void MyMethod()
{
var test = _Repository.Get(2);
_Services.DoSomething(test);
}
ce que je fais est en ce moment quelque chose comme ceci:
[Test]
public void TestMethod()
{
var mock1 = CreateMock<IRepository>();
var mock2 = CreateMock<IServices)();
mock1.Expect(x => x.Get(1).IgnoreArguments().Return(new Poo()).Repeat.Once();
mock2.Expect(x => x.DoSomething(new Something()).IgnoreArguments().Repeat.Once();
ClassUnderTest.MyMethod();
mock1.VerifyAllExpectations();
mock2.VerityAllExpectations();
}
cela est bien beau, mais ce Je veux est d'empêcher quelqu'un de changer la méthode comme ceci:
public void MyMethod()
{
var test = _Repository.Get(2);
var test = _Repository.Save(test);
_Services.DoSomething(test);
}
Comme vous pouvez voir Enregistrer la méthode sur Repo sitory est appelé, donc c'est dangereux évidemment parce que si quelqu'un par erreur ajoute cette ligne là nous aurons des ennuis.
Comment puis-je empêcher cela? Merci.
Merci pour votre réponse. Il y a un petit problème. en utilisant le Repeat.Never() et AssertWasNotCalled est un peu lent, parce que disons si j'ai 20 méthodes que je ne veux pas être alors je dois tous énumérer comme ci-dessus. la première option semble bien, mais je ne pouvais pas tout à fait le faire fonctionner avec AutoMock. Je vais essayer à nouveau plus tard. – Raha