Я тестировал свою бизнес-логику в проекте ServiceStack 3.9.38 и столкнулся с проблемой, когда выполнение модульных тестов по отдельности приводит к успеху, а выполнение всех тестов приводит к сбою одного из них. Через несколько часов я сделал воспроизводимый модульный тест. Если вы запустите все приспособление, второй тест завершится неудачей. Запуск тестов по отдельности заставляет их проходить.
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