я использую NUnit и Moq Autofac для установки тестустановки MOQ не возвращает ожидаемое значение
[TestFixture]
public class SomeTests
{
[OneTimeSetUp]
public void Initialize()
{
}
[Test]
public void SalaryCheck()
{
using (var mock = AutoMock.GetLoose())
{
// Arrange
mock.Mock<ICommonServices>().Setup(x => x.AddTwoNumbers(1,2)).Returns(5);
var sut = mock.Create<SomeManager>();
// Act
int actul = sut.CalculateSalary(1);
var expected = 5;
// Assert
Assert.AreEqual(expected, actul);
}
}
}
функция CalculateSalary выглядит как этот
public int CalculateSalary(int hours)
{
var addres = _commonService.AddTwoNumbers(5,3);
if (addres == 5)
{
return addres * hours;
}
else
{
return 100;
}
}
я хочу функцию AddTwoNumbers, которая является внешней зависимости, чтобы возвращение 5 независимо от того, что. вот почему я настраиваю его, издеваясь над ним. Но когда я отлаживаю этот тест, похоже, что он входит в функцию зарплаты calsulate, но возвращает функцию «0» для AddTwoNumbers. который является своеобразным значением по умолчанию или нулевым значением.
это не возвращает мне 5, то есть я установил его для возвращения.
Thats правильно плохо пометить его как ответ ом 3 мин –