Я видел много сообщений и вопросов о "Mocking private method", но все еще не могу заставить его работать и не нашел реального ответа. Давайте забудем запах кода, и вы не должны этого делать и т.д.
Из того, что я понимаю, я сделал следующее:
1) Создал библиотеку классов "MyMoqSamples"
2) Добавлена ссылка на Moq и NUnit
3) Отредактировал файл AssemblyInfo и добавил [сборка: InternalsVisibleTo ( "DynamicProxyGenAssembly2" )] [сборка: InternalsVisibleTo ( "MyMoqSamples" )]
4) Теперь нужно протестировать закрытый метод. Поскольку это частный метод, он не является частью интерфейса.
5) добавлен следующий код
[TestFixture]
public class Can_test_my_private_method
{
[Test]
public void Should_be_able_to_test_my_private_method()
{
// TODO how do I test my DoSomthing method?
}
}
public class CustomerInfo
{
public string Name { get; set; }
public string Surname { get; set; }
}
public interface ICustomerService
{
List<CustomerInfo> GetCustomers();
}
public class CustomerService : ICustomerService
{
public List<CustomerInfo> GetCustomers()
{
return new List<CustomerInfo> { new CustomerInfo { Surname = "Bloggs", Name = "Jo" } };
}
protected virtual void DoSomething()
{
}
}
Не могли бы вы привести мне пример того, как вы будете тестировать мой частный метод? Большое спасибо