Я пытаюсь смоделировать Userservice, который наследует базовый класс, с помощью неких общих методов.Я не могу издеваться над вызовом RetrieveEntitiesTest.
Когда я вызываю var validated = _userServiceMock.Object.ValidateUser(email, password);
, выполняется актуальная реализация RetrieveEntitiesTest ...
Возможно ли это?Вы можете увидеть представление моего кода ниже:
public class BaseService
{
public virtual bool RetrieveEntitiesTest<T>(QueryExpression query)
{
return false;
}
}
public class UserService : BaseService
{
public bool ValidateUser(string username, string password)
{
// adding query parameters
var query = new QueryExpression();
var userCount = RetrieveEntitiesTest<User>(query);
return userCount > 0;
}
}
[TestFixture]
public class UserServiceTests
{
private Mock<UserService> _userServiceMock;
[TestFixtureSetUp]
public void TestFixtureSetUp()
{
_userServiceMock = new Mock<UserService>();
}
[Test]
public void ValidateLogin_ValidEmailValidPassword_ValidatedAndReturnsTrue()
{
string email = "user@company.com";
string password = "password";
var query = .....
_userServiceMock.Setup(x => x.RetrieveEntitiesTest<User>(new QueryExpression())).Returns(true);
var validated = _userServiceMock.Object.ValidateUser(email, password);
Assert.IsTrue(validated);
}
}