public void should_register_dependency_using_A_convention() { var builder = new ContainerBuilder(); var dependencyTypes = Assembly.GetExecutingAssembly().GetExportedTypes(); //new[] { typeof(MockDependency) }; // convention which should match to IMockDependencyMarker and register it var convention = Substitute.For<IRegistrationConvention>(); // match to IMockDependencyMarker convention.IsMatch(Arg.Is<Type>(type => typeof(IMockDependencyMarker).IsAssignableFrom(type))).Returns(true); // apply convention convention.WhenForAnyArgs(c => c.Apply(null, null)).Do( ci => { var registration = ci.Arg<ITypeRegistration>(); registration.As<IMockDependency>(); }); // act builder.RegisterUsingConventions(dependencyTypes, new[] { convention }); IContainer container = builder.Build(); // assert var mockDependency = container.ResolveOptional<IMockDependency>(); mockDependency.Should().NotBeNull(); mockDependency.Should().BeOfType<MockDependency>(); }