【发布时间】:2009-09-29 15:48:29
【问题描述】:
鉴于这个类:
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);
}
}
还有这个测试:
[Fact]
public void PurgeOrder_should_log_action()
{
var order = new Order();
var logger = MockRepository.GenerateStub<IOrderLogger>();
var service = new OrderService(logger);
service.PurgeOrder(order);
logger.AssertWasCalled(x => x.Action(????));
}
显然测试是错误的。我如何断言 OrderLogger.Action(...) 在这种情况下实际上被调用了?如果 LogAction 在 PurgeOrder 方法中被实例化,我看不出它是怎么可能的。有什么建议吗?
【问题讨论】:
标签: c# unit-testing rhino-mocks