ServiceStack 3.9.38 プロジェクトでビジネス ロジックをテストしてきましたが、単体テストを個別に実行すると成功し、テストをまとめて実行するとそのうちの 1 つが失敗するという問題に直面しました。数時間後、再現可能な単体テストを作成しました。フィクスチャ全体を実行すると、2 番目のテストは失敗します。テストを個別に実行すると、合格になります。
using Funq;
using NUnit.Framework;
[TestFixture]
public class Test
{
interface IBar {}
class Bar : IBar {}
class TestFoo { public IBar Bar { get; set; } }
[Test]
public void Test1()
{
var container = new Container();
var m = new TestFoo();
container.Register<IBar>(new Bar());
Assert.NotNull(container.Resolve<IBar>(), "Resolve");
container.AutoWire(m);
Assert.NotNull(m.Bar, "Autowire");
}
[Test]
public void Test2()
{
var container = new Container();
var m = new TestFoo();
container.AutoWire(m);
Assert.Throws<ResolutionException>(() => container.Resolve<IBar>());
Assert.IsNull(m.Bar); // FAILS HERE
}
}
それは Funq.Container 構成の問題ですか? それともこれはバグですか?回避策はありますか?
編集: GitHub に問題を投稿しました: https://github.com/ServiceStack/ServiceStack/issues/521