Testing 模拟记录异常

Testing 模拟记录异常,testing,mocking,rhino-mocks,Testing,Mocking,Rhino Mocks,我正在使用mock.record()并检查文件名的长度。。 测试代码为: MockRepository mock = new MockRepository(); IExtension ext = mock.StrictMock<IExtension>(); using (mock.Record()) { ext.LogError("filename not valid"); }

我正在使用
mock.record()
并检查文件名的长度。。 测试代码为:

        MockRepository mock = new MockRepository();
        IExtension ext = mock.StrictMock<IExtension>();

        using (mock.Record())
        {
            ext.LogError("filename not valid");
        }

        LogAnalyser log = new LogAnalyser(ext);
        string shortfilename = "jjh.df";
        log.IsValid(shortfilename);
        mock.Verify(ext);

请提供一些解决方案。

日志错误被多次命中。添加以下内容:

ext.LogError(“文件名不正确 有效“).IgnoreArguments().Repeat.Any()


我不能100%确定您是否需要

日志错误被多次命中。添加以下内容:

ext.LogError(“文件名不正确 有效“).IgnoreArguments().Repeat.Any()


我不能100%确定您是否需要使用StrictMock,这意味着只允许您专门设置的调用,其中包括参数值。您设置了使用以下字符串调用LogError的预期:

filename not valid
filename is short:jjh.df
但在执行过程中实际发生的是使用字符串进行调用:

filename not valid
filename is short:jjh.df
因此Rhino.Mocks提供了两个异常(一个是因为它发现了一个不期望的调用,另一个是因为没有找到期望的调用)


@Ivo使用“IgnoreArguments”的回应应该有效。如果不是,请提供有关您使用的.NET和Rhino.mock版本的更多详细信息。

您使用的是StrictMock,这意味着只允许您专门设置的调用,其中包括参数值。您设置了使用以下字符串调用LogError的预期:

filename not valid
filename is short:jjh.df
但在执行过程中实际发生的是使用字符串进行调用:

filename not valid
filename is short:jjh.df
因此Rhino.Mocks提供了两个异常(一个是因为它发现了一个不期望的调用,另一个是因为没有找到期望的调用)


@Ivo使用“IgnoreArguments”的回应应该有效。如果没有,请提供有关您正在使用的.NET和Rhino.Mocks版本的更多详细信息。

。IgnoreArgument不起作用。它显示错误“无法解析符号”IgnoreArgument“…IgnoreArgument不起作用。它显示错误“无法解析符号”IgnoreArgument“。。