Как выполнить модульный тест ServiceStack?

Я люблю SS, но я ломаю голову, пытаясь провести юнит-тестирование своего бизнес-уровня. Я новичок в модульном тестировании и макетировании и читаю NSubstitute, так как это похоже на забавный насмешливый слой.

У меня есть моя файловая структура примерно так:

MainAppHostProject*
|
 -AppStart
    -AppHost  <-- standard apphost

DtoProject*
|
 -HelloWorldDto  <-- simple POCO to 


ServiceLayerProject*
|
 -HelloWorldService  <-- service interface that merely passes/sends Dtos to/from business layer


BusinessLayerProject*
|
 -HelloWorldManager <-- logic to construct response and this class extends 'Service' (letting me access Db, session, etc)...sidenote: maybe i shouldve called this a HelloWorldRepository?
 -CustomAuthProvider
 -CustomUserSession


DaoProject*
|
 -HelloWorldDao  <-- POCO of table structure

Apphost указывает на сборку HelloWorldService и регистрирует базу данных SQL Server как стандартную.

Все на самом деле прекрасно работает, и я смог построить логику более чистым способом. К сожалению, я хочу начать модульное тестирование, НО я не знаю, как отделить базу данных.

Я пытался зарегистрировать фальшивку в базе данных памяти, но затем я думаю, что есть проблемы несовместимости с тем, как я использовал код для получения идентификаторов и т. Д. В SQL Server и SQLite.

// container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory(":memory:", false, SqliteOrmLiteDialectProvider.Instance));
// container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory(":memory:", false, SqlServerDialect.Provider));

Я просто хочу развязать и юнит-тест. Есть идеи, пожалуйста?

***ОБНОВИТЬ

public class UnitTest1
{
    private Container container;

    [TestMethod]
    public void TestMethod1()
    {
        container = new Container();

        // container.Register<IDbConnectionFactory>(new OrmLiteConnectionFactory(":memory:", false, SqliteDialect.Provider));
        // sqlite didnt work so attempting with a real DB for now
        var connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=XXX;Integrated Security=True";
        container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory(connectionString, SqlServerDialect.Provider));

        // dependencies are injecting ok 
        container.RegisterAutoWiredAs<FeedbackRepo, IFeedbackRepo>();

        // service is autowiring --> leading to good injections
        container.RegisterAutoWired<FeedbackService>();

        var service = container.Resolve<FeedbackService>();
        service.SetResolver(new BasicResolver(container));

        // unit test is working well  
        var request = new DTO.FeedbackDto { Message = "test" };
        bool result = service.Post(request);
   }
}

В данный момент я пытаюсь заставить 'Db' перестать быть нулевым в моих производных классах Service.

Ответы на вопрос(1)

Ваш ответ на вопрос