我遇到一个问题,即当我run
进行单元测试时,简单的Rhino Mock存根方法可以正常工作,但在Can't create mocks of sealed classes
模式下执行时会抛出异常debug
。我尝试用Do
方法替换Return
,但这并未改变行为。
在Rhino Mocks 3.6中使用C#,通过在单元测试中减去Add函数来冒犯任何人道歉;)
public interface ICalculator
{
int Add(int value, int value2);
}
public class Calculator : ICalculator
{
public int Add(int value, int value2)
{
return value + value2;
}
}
public class Sums
{
private ICalculator calculator;
public Sums(ICalculator calculatorArg)
{
calculator = calculatorArg;
}
public int Add(int value, int value2)
{
return calculator.Add(value, value2);
}
}
[TestMethod()]
public void AddTest()
{
//ARRANGE
var calculatorArg = MockRepository.GenerateMock<ICalculator>();
Func<int, int, int> subtract = delegate(int valueArg, int value2Arg)
{
return valueArg - value2Arg;
};
calculatorArg.Stub(x => x.Add(-1,-1)).IgnoreArguments().Do(subtract);
Sums target = new Sums(calculatorArg);
int value = 5;
int value2 = 3;
int expected = 2;
//ACT
int actual = target.Add(value, value2);
//ASSERT
Assert.AreEqual(expected, actual);
}
答案 0 :(得分:6)
刚出现这个问题。 我删除了隐藏的.suo文件,确定它有效。
当我意识到通过删除设置时,异常捕获选项也被删除了。任何例外情况都没有停止。重新启用“调试”中的选项 - &gt;“例外...”会重新显示错误。
然而,它是 First Chance异常,所以一个简单的F5(继续)将跳过它,代码实际上按预期运行。
简而言之,删除suo文件的解决方案意味着重置设置,从而忽略异常。
答案 1 :(得分:2)
删除suo文件
<强> 说明: 强> 在PatrickSteele亲切地向我指出用我的代码创建一个新项目确实有效之后,我比较了原始项目和新项目中的每个文件,发现只有suo文件不同。 (Guids,项目名称等除外)。
删除解决方案的.suo文件后问题解决了。这不是我最喜欢的问题的答案,而是一个非常简单的答案。