我正在使用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);产品代码是:
public void IsValid(string filename)
{
if(filename.Length<8)
{
extension.LogError("filename is short:" + filename);
}
}调试时,production中的extension.logerror给出了一个异常:
IExtension.LogError("filename is short:jjh.df"); Expected #0, Actual #1.
IExtension.LogError("filename not valid"); Expected #1, Actual #0.请提供一些解决方案。
发布于 2011-04-22 21:21:03
LogError被多次命中。添加以下内容:
ext.LogError(“文件名无效”).IgnoreArguments().Repeat.Any();
我不能百分之百确定你是否需要
发布于 2011-04-26 19:59:04
您使用的是StrictMock,这意味着只允许由您专门设置的调用--这包括参数值。您设置了一个期望,即使用以下字符串调用LogError:
filename not valid但在执行过程中实际发生的是使用字符串进行调用:
filename is short:jjh.df因此,Rhino.Mocks给出了两个异常(一个是因为它发现了一个意外的调用,另一个是因为没有找到预期的调用)。
@Ivo使用"IgnoreArguments“的响应应该是有效的。如果不是,请详细说明您使用的.NET和Rhino.Mocks的版本。
https://stackoverflow.com/questions/5755806
复制相似问题