Модульный тест Moq работает на Windows, но не на сервере сборки Mono
У меня есть модульное тестирование для службы на основе ServiceStack, которая проходит на моей рабочей станции Windows, однако сервер TeamCity, который находится на Ubuntu / Mono, не проходит - другие тесты, тем не менее, запускаются, только один в частности.
Это не удается
[Test]
public void Post_Valid_Property_Should_Return_HttpStatus_OK()
{
var manager = new Mock<IRedisClientsManager>();
var redisClient = new Mock<IRedisClient>();
var redisTypedClient = new Mock<IRedisTypedClient<Share.Property.Model.Property>>();
manager.Setup(t => t.GetClient()).Returns(redisClient.Object);
redisClient.Setup(t => t.As<Share.Property.Model.Property>()).Returns(redisTypedClient.Object);
var sut = new SomeService(manager.Object);
var result = sut.Post(new PropertySaveRequest {Property = new Share.Property.Model.Property { Id = 1, OwnerId = 2 } });
Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK));
}
Другие тесты, не использующие макеты, проходят нормально, например.
[Test]
public void Post_Invalid_Property_Should_Throw_Exception()
{
_container = new WindsorContainer()
.Install(new PropertyInstaller());
var service = _container.Resolve<IPropertyService>();
Assert.That(() => service.Post(new PropertySaveRequest { Property = new Share.Property.Model.Property{Id=-11, OwnerId = -14} }),
Throws.Exception.TypeOf<ArgumentOutOfRangeException>());
}
Я предполагаю, что ошибка связана с Moq, так как другой тест может использовать Castle IOC без броска.
Тест (ы) не пройден. System.Collections.Generic.KeyNotFoundException: указанный ключ отсутствует в словаре.
Любые идеи приветствуются