Angenommen, diese Klasse:
public class OrderService
{
public OrderService(IOrderLogger log)
{
this.log = log;
}
private readonly IOrderLogger log;
public void PurgeOrder(Order order)
{
...
var action = new LogAction("foo","bar");
log.Action(action);
}
}
Und dieser Test:
[Fact]
public void PurgeOrder_should_log_action()
{
var order = new Order();
var logger = MockRepository.GenerateStub();
var service = new OrderService(logger);
service.PurgeOrder(order);
logger.AssertWasCalled(x => x.Action(????));
}
Offensichtlich ist der Test falsch. Wie kann ich überprüfen, ob OrderLogger.Action(...) tatsächlich in diesem Szenario aufgerufen wurde? Wenn die LogAction innerhalb der Methode PurgeOrder instanziiert wird, sehe ich nicht, wie das möglich ist. Irgendwelche Vorschläge?