Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Rhino Mock:FailedRecorded期望值:IDateHelper.get_Now();_C#_Unit Testing_Mocking_Rhino Mocks - Fatal编程技术网

C# Rhino Mock:FailedRecorded期望值:IDateHelper.get_Now();

C# Rhino Mock:FailedRecorded期望值:IDateHelper.get_Now();,c#,unit-testing,mocking,rhino-mocks,C#,Unit Testing,Mocking,Rhino Mocks,我正在调试这个不伦不类的Rhino Mocks错误: Rhino.Mocks.Exceptions.ExpectationViolationException:。。。预计为#0, 实际的#1 发现putingRhinoMocks.Logger=newtextWriterExpectationLogger(Console.Out)在录制之前为我提供了更多信息: FailedRecorded期望值:IDateHelper.get_Now() 但我不知道如何解决这个问题,甚至不知道出了什么问题 代码如

我正在调试这个不伦不类的Rhino Mocks错误:

Rhino.Mocks.Exceptions.ExpectationViolationException:。。。预计为#0, 实际的#1

发现puting
RhinoMocks.Logger=newtextWriterExpectationLogger(Console.Out)
在录制之前为我提供了更多信息:

FailedRecorded期望值:IDateHelper.get_Now()

但我不知道如何解决这个问题,甚至不知道出了什么问题

代码如下所示:

IDateHelper dateHelper = mock.StrictMock<IDateHelper>();
DateTime now = new DateTime(2011, 12, 16);
Expect.Call(dateHelper.Now).Return(now).Repeat.Any();
...
public interface IDateHelper
    {
        DateTime Now { get; } 
    }

ExpectationViolationException发生在日期变量传递到另一个函数的几行之后。

希望这会对您有所帮助。我必须同意@ledbutter,Expect符号是我认为更容易理解的

using System;
using NUnit.Framework;
using Rhino.Mocks;

namespace FluentConfigHelper.Test
{
    [TestFixture]
    public class StackOverflowTest
    {
        private IDateHelper _dateHelper;

        public interface IDateHelper
        {
            DateTime Now { get; }
        }

        public class DateHelper : IDateHelper
        {
            public DateTime Now { get; set; }
        }

        public IDateHelper DateHelperLocal
        {
            get { return _dateHelper ?? (_dateHelper = new DateHelper()); }
            set { _dateHelper = value; }
        }

        public DateTime MethodUnderTest()
        {
            return DateHelperLocal.Now.AddMonths(1);
        }

        [Test]
        public void DateTimeTest()
        {
            IDateHelper dateHelper = MockRepository.GenerateStrictMock<IDateHelper>();
            DateTime now = new DateTime(2011, 12, 16);
            dateHelper.Expect(x => x.Now).Return(now);
            DateHelperLocal = dateHelper;
            var result = MethodUnderTest();
            Assert.AreEqual(new DateTime(2012, 1, 16), result);
            dateHelper.VerifyAllExpectations();
        }
    }
}
使用系统;
使用NUnit.Framework;
使用犀牛;
命名空间FluentConfigHelper.Test
{
[测试夹具]
公共类堆栈溢出测试
{
私人助理(日期助理);;
公共接口IDateHelper
{
日期时间现在{get;}
}
公共类DateHelper:IDateHelper
{
public DateTime Now{get;set;}
}
公共IDateHelperDateHelperLocal
{
获取{return\u dateHelper???(\u dateHelper=new dateHelper());}
设置{u dateHelper=value;}
}
public DateTime MethodUnderTest()
{
返回日期HelperLocal.Now.AddMonths(1);
}
[测试]
public void DateTimeTest()
{
IDateHelper dateHelper=MockRepository.GenerateStrictMock();
DateTime now=新的日期时间(2011,12,16);
Expect(x=>x.Now).Return(Now);
DateHelperLocal=dateHelper;
var result=MethodUnderTest();
Assert.AreEqual(新日期时间(2012,1,16),结果);
dateHelper.VerifyAllExpections();
}
}
}

所以您正在测试的方法应该调用
IDateHelper。现在
,您能显示该代码吗?用代码更新了问题。感谢您查看我的问题:)谢谢,但是您也可以显示单元测试中的所有相关行吗?为什么不使用以下语法:
dateHelper.Expect(d=>d.Now).Return(Now)
using System;
using NUnit.Framework;
using Rhino.Mocks;

namespace FluentConfigHelper.Test
{
    [TestFixture]
    public class StackOverflowTest
    {
        private IDateHelper _dateHelper;

        public interface IDateHelper
        {
            DateTime Now { get; }
        }

        public class DateHelper : IDateHelper
        {
            public DateTime Now { get; set; }
        }

        public IDateHelper DateHelperLocal
        {
            get { return _dateHelper ?? (_dateHelper = new DateHelper()); }
            set { _dateHelper = value; }
        }

        public DateTime MethodUnderTest()
        {
            return DateHelperLocal.Now.AddMonths(1);
        }

        [Test]
        public void DateTimeTest()
        {
            IDateHelper dateHelper = MockRepository.GenerateStrictMock<IDateHelper>();
            DateTime now = new DateTime(2011, 12, 16);
            dateHelper.Expect(x => x.Now).Return(now);
            DateHelperLocal = dateHelper;
            var result = MethodUnderTest();
            Assert.AreEqual(new DateTime(2012, 1, 16), result);
            dateHelper.VerifyAllExpectations();
        }
    }
}