首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mock.record异常

mock.record异常
EN

Stack Overflow用户
提问于 2011-04-22 21:15:35
回答 2查看 112关注 0票数 1

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

代码语言:javascript
复制
        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);

产品代码是:

代码语言:javascript
复制
    public void IsValid(string filename)
    {
        if(filename.Length<8)
        {
            extension.LogError("filename is short:" + filename);
        }
    }

调试时,production中的extension.logerror给出了一个异常:

代码语言:javascript
复制
IExtension.LogError("filename is short:jjh.df"); Expected #0, Actual #1.
IExtension.LogError("filename not valid"); Expected #1, Actual #0.

请提供一些解决方案。

EN

回答 2

Stack Overflow用户

发布于 2011-04-22 21:21:03

LogError被多次命中。添加以下内容:

ext.LogError(“文件名无效”).IgnoreArguments().Repeat.Any();

我不能百分之百确定你是否需要

票数 1
EN

Stack Overflow用户

发布于 2011-04-26 19:59:04

您使用的是StrictMock,这意味着只允许由您专门设置的调用--这包括参数值。您设置了一个期望,即使用以下字符串调用LogError:

代码语言:javascript
复制
filename not valid

但在执行过程中实际发生的是使用字符串进行调用:

代码语言:javascript
复制
filename is short:jjh.df

因此,Rhino.Mocks给出了两个异常(一个是因为它发现了一个意外的调用,另一个是因为没有找到预期的调用)。

@Ivo使用"IgnoreArguments“的响应应该是有效的。如果不是,请详细说明您使用的.NET和Rhino.Mocks的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5755806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档