我遇到了一个问题,当我运行单元测试时,一个简单的Rhino Mock桩方法会完美地工作,但在debug
模式下执行时会抛出异常无法创建密封类的模拟对象
。我已经尝试用一个Return
方法替换Do
,但这没有改变行为。
使用Rhino Mocks 3.6的C#,对于在单元测试中让Add函数执行减法的做法,如果有冒犯任何人之处,请谅解;)
接口
public interface ICalculator
{
int Add(int value, int value2);
}
Classes
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);
}