Вы не вернули значение, поэтому вы должны вернуть, как показано ниже
var fakePrimeNumberViewModel = new PrimeNumberViewModel { new Result { removedPrimeNumbersText = "HAHAHA 2"} }
_mockService.Setup(x => x.RemovePrimeNumbers("Test123")).Returns(fakePrimeNumberViewModel);
Кроме того, вам нужно новое Controller
вместо Mock
it.
var _controller = new PrimeNumberOperationsController(_mockService.Object);
И убедитесь, что ожидаемые аргументы, приведенные к макету, используются одинаково при выполнении теста. Например, в вашем примере макет был настроен на ожидание "Test123"
, но при выполнении теста ему присваивается "HAHAHA 2"
, что приведет к тому, что макет будет вести себя не так, как ожидалось.
Полный код :
public void ControllerTest()
{
//Arrange
string plainText = "Test123";
string expected = "HAHAHA 2";
Mock<IPrimeNumberOperations> _mockService = new Mock<IPrimeNumberOperations>();
var fakePrimeNumberViewModel = new PrimeNumberViewModel {
new Result { removedPrimeNumbersText = expected}
};
_mockService
.Setup(x => x.RemovePrimeNumbers(plainText))
.Returns(fakePrimeNumberViewModel);
var _controller = new PrimeNumberOperationsController(_mockService.Object);
//Act
var actual = _controller.RemovePrimeNumbers(plainText);
//Assert
Assert.AreEqual(expected, actual, "Error message");
}