Je voudrais me moquer d'une interface qui est transmise comme argument principal à une fonction, mais la méthode est compliquée, et par conséquent je ne veux pas avoir à spécifier des valeurs par défaut ou un comportement exact pour chaque test. Je voudrais spécifier des valeurs par défaut dans une méthode d'installation, et remplacer des parties spécifiques de cela dans chaque test selon les besoins.Comment puis-je configurer des actions par défaut pour une interface de simulation de rhinocéros dans une méthode de configuration, qui peut être surchargée pour un comportement spécifique dans une méthode de test?
i.e. .:
public interface IOptions
{
string Something { get; }
}
[TestFixture]
public class Tester
{
MockRepository mocks;
IOptions someOptions;
string expectedXml;
[Setup]
public void Setup()
{
mocks = new MockRepository();
someOptions = mocks.DynamicMock<IOptions>();
//Something that would go here.
// I.e. SetupResult.For(someOptions.Something).Return("default");
}
[Teardown]
public void Teardown()
{
mocks.ReplayAll();
using (var ms = new MemoryStream())
{
var unitUnderTest = new SomeOptionsWriter(ms);
unitUnderTest.Write(someOptions);
Assert.AreEqual(expectedXml, Encoding.Utf8.GetString(ms.ToArray()));
}
mocks.VerifyAll();
}
[Test]
public void SomeTest()
{
expectedXml = "<root><default></default></root>";
//Relies on default behavior
}
[Test]
public void SomeTest2()
{
expectedXml = "<root><sub></sub></root>";
Expect.Call(someOptions.Something).Return("sub");
}
}
Comment puis-je arriver en utilisant Rhino Mocks?
Comment remplace-t-on le talon? –