I am trying to mock IComponentContext with NSubstitute as below:
[TestClass()]
public class SyncRepositoryFactoryTests
{
private IComponentContext _container;
private SyncRepositoryFactory _factory;
[TestInitialize]
public void Initialize()
{
_container = Substitute.For<IComponentContext>();
_factory = new SyncRepositoryFactory(_container);
}
[TestMethod]
public void Get_SyncRepositoryOfITestEntity_Success()
{
var repository = Substitute.For<IRepository<TestEntity>>();
_container.Resolve<IRepository<TestEntity>>().Returns(repository);
var result = _factory.Get<ITestEntity>();
Assert.IsNotNull(result);
Assert.IsTrue(result is ISyncRepository<ITestEntity>);
}
public interface ITestEntity
{
}
public class TestEntity : ITestEntity
{
}
}
but I get exception:
ComponentNotRegisteredException: The requested service
'Hvb.eMarketAdvisor.Repository.SharePoint.IRepository`1[[Hvb.eMarketAdvisor.
Repository.SharePoint.Tests.Units.SyncRepositoryFactoryTests+TestEntity,
Hvb.eMarketAdvisor.Repository.SharePoint.Tests.Units,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' has not been registered.
To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependency.
As I try to create a mock why IComponentContext try to resolve dependency?
Aucun commentaire:
Enregistrer un commentaire