今日から ServiceStack を使い始めました。だから、私が何か完全に間違っているかどうか教えてください。
このコードを使用しているServiceクラスにDbを注入しようとしています
[TestFixture]
public class UserServiceTests
{
private UserService service;
[SetUp]
public void SetUp()
{
var appHost = new BasicAppHost();
var dbFactory = new OrmLiteConnectionFactory(":memory:", false, SqliteDialect.Provider);
appHost.Container.Register<IDbConnectionFactory>(dbFactory);
service = new UserService();
service.SetAppHost(appHost);
}
[Test]
public void Calling_post_method_with_valid_User_saves_it_in_database()
{
var User = new User { Name = "Acme Limited" };
var id = service.Post(User);
Assert.AreEqual(1, id);
}
}
2 つの問題があります: 1) 例外が発生しています:
Could not load file or assembly 'System.Data.SQLite, Version=1.0.82.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
これを修正する簡単な方法はありますか?また、テストに SQLite が本当に必要なのですか? Fake オブジェクトは利用できますか?
2) コンパイラは、service.SetAppHost(appHost) について警告しています。SetAppHost は廃止されました。SetAppHost を使用せずにサービス クラスに Db を挿入するにはどうすればよいですか?
何か案は?