Я использую Moq, и я немного новичок в этом.
Мне нужно проверить приватный метод.
У меня есть 2 сборки:
CustomerTest.dll
CustomerBusiness.dll
Так
CustomerTest dll имеет следующий класс:
[TestFixture]
public class CustomerTestFixture
{
var customerMock=new Mock<ICustomer>()
customerMock.Protected().Setup<bool>("CanTestPrivateMethod").Returns(true);
etc...
}
CustomerBusiness.dll имеет
публичный интерфейс ICustomer
{
void Buy ();
}
public class Customer:ICustomer
{
public void Buy()
{
etc...
}
protected virtual bool CanTestPrivateMethod()
{
return true;
}
}
Я получаю следующую ошибку
System.ArgumentException : Member ICustomer.CannotTestMethod does not exist.
at Moq.Protected.ProtectedMock`1.ThrowIfMemberMissing(String memberName, MethodInfo method, PropertyInfo property)
at Moq.Protected.ProtectedMock`1.Setup(String methodOrPropertyName, Object[] args)
Я также добавил [assembly: InternalsVisibleTo("CustomerTest.CustomerTestFixture")
но без разницы!
Что я делаю не так? Я знаю, что мой интерфейс не имеет такого метода. В этом и заключается смысл моего метода быть закрытым Можете ли вы помочь с примером?