C# nssubstitute DateTime.Now()如何获取DateTime.Now()以返回不断增加的日期和时间?

C# nssubstitute DateTime.Now()如何获取DateTime.Now()以返回不断增加的日期和时间?,c#,unit-testing,datetime,nsubstitute,C#,Unit Testing,Datetime,Nsubstitute,我有几个单元测试,其中我们使用NSubstitute作为DateTime。在某些情况下,我希望将DateTime.Now()增加一定的设置量,以便每次调用它时,日期和时间都会稍微增加一点。目前我有: private int minutesToAdd = 1; private DateTime dateToUse = new DateTime(2018, 1, 1, 0, 0, 0); DateTime = Substitute.For<IDateTime>(); Da

我有几个单元测试,其中我们使用NSubstitute作为DateTime。在某些情况下,我希望将DateTime.Now()增加一定的设置量,以便每次调用它时,日期和时间都会稍微增加一点。目前我有:

  private int minutesToAdd = 1;
  private DateTime dateToUse = new DateTime(2018, 1, 1, 0, 0, 0);
  DateTime = Substitute.For<IDateTime>();
  DateTime.Now().Returns(dateToUse.AddMinutes(minutesToAdd)).AndDoes(x => minutesToAdd++) ;
private int minutesoadd=1;
private DateTime dateToUse=新的日期时间(2018,1,1,0,0);
DateTime=替换为();
DateTime.Now()返回(dateToUse.AddMinutes(minutesToAdd)).AndDoes(x=>minutesToAdd++);
每次调用函数时返回2018年1月1日2日00:01。
我认为“AndDoes”每次都会增加MinutesLoadd,并将时间增加一分钟。

我可以让DateTime替换在每次调用时增加一分钟吗?

应该有一个重载
Returns()
接受
函数,请尝试:

var DateTime = Substitute.For<IDateTime>();

DateTime.Now().Returns(x =>
{
    var dt = dateToUse.AddMinutes(minutesToAdd);
    minutesToAdd++;
    return dt;
});

成功了!非常感谢。
DateTime.Now().Returns(x => dateToUse.AddMinutes(minutesToAdd++));