我有一个问题,当我run进行单元测试时,一个简单的Rhino Mock存根方法可以正常工作,但是Can't create mocks of sealed classes在debug模式下执行时会抛出异常.我试着更换Do了Return方法,但是这并没有改变行为.
使用C#与Rhino Mocks 3.6,通过在单元测试中减去添加函数来冒犯任何人的道歉;)
public interface ICalculator
{
int Add(int value, int value2);
}
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
[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);
}
Run Code Online (Sandbox Code Playgroud)
刚刚遇到这个问题.我删除了隐藏的.suo文件,确定它有效.
那时我意识到通过删除设置,异常捕获选项也被删除了.任何例外情况都没有停止.重新启用"Debug" - >"Exceptions ..."中的选项会使错误重新出现.
然而,这是一个First Chance异常,所以一个简单的F5(Continue)将跳过它,代码实际上按预期运行.
简而言之,删除suo文件的解决方案意味着重置设置,从而忽略异常.
删除suo文件
说明: 在 PatrickSteele 善意地向我指出用我的代码创建一个新项目确实有效之后,我比较了原始项目和新项目中的每个文件,发现只有 suo 文件不同。(指南、项目名称等除外)。
删除解决方案的.suo 文件后,问题得到解决。这不是我最喜欢的这个问题的答案,但仍然是一个答案。
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |