Я думаю, что я упускаю что-то действительно простое, поэтому заранее прошу прощения.Я пытаюсь проверить интерфейс с Nunit.Интерфейс реализован классом, производным от базового класса, и я использую Castle Windsor для IOC.Я просто не знаю, где назначить интерфейс в производном тестовом классе.
Вот базовый тестовый класс
[TestFixture]
public class BaseTest
{
protected ISession session;
[SetUp]
public void setup() {
NHibernateConfig.Init(
MsSqlConfiguration.MsSql2008.ConnectionString(
builder =>
builder.Server("localhost")
.Database("Db_test")
.TrustedConnection()),
RebuildDatabase());
session = NHibernateConfig.CreateAndOpenSession();
}
[Test]
public void Shoud_Test_Connection(){
// testing connection via setup fixture
}
[TearDown]
public void TearDown(){
if (session != null)
session.Dispose();
}
private Action<Configuration> RebuildDatabase() {
return config => new SchemaExport(config).Create(false, true);
}
}
Вот производный тестовый класс
[TestFixture]
public class RepositoryTest : BaseTest
{
IRepository repository;
[SetUp]
public void Setup(){
// I think the interface should get assigned
// in here somehow....
}
[Test]
public void Should_Create_And_Read(){
var post = CreatePost();
var actual = (IList) repository.GetAll();
Assert.Contains(post, actual);
Assert.AreEqual(1, actual.Count);
}
}
У меня есть зарегистрированный репозиторий в моем контейнере windsor, и он работает нормальномои контроллеры, просто не могу понять, как проверить интерфейс.Мое единственное решение состоит в том, чтобы назначить интерфейсу конкретную реализацию в методе установки, но мне интересно, если я собираюсь использовать DI для какой-то обработки.