У меня проблема, из-за которой простой метод заглушки Rhino Mock будет отлично работать, когда я запускаю
модульный тест, но выдает исключение. Невозможно создать имитацию запечатанные классы
при выполнении в режиме отладки
. Я попытался заменить Do
методом Return
, но это не изменило поведения.
Использование C # с Rhino Mocks 3.6, извиняюсь за оскорбление кого-либо, заставив функцию сложения вычитать в модульном тесте;)
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);
}