Я настроен MockingKernel
для того, чтобы издеваться зависимость:настроить издевались впрыскивается объект
[TestFixture]
public class TestsFixture
{
private NSubstituteMockingKernel IoCKernel;
public UsersTests()
{
this.IoCKernel = new NSubstituteMockingKernel();
}
[SetUp]
public void SetUp()
{
this.IoCKernel.Reset();
}
[Test]
public void AddUserTest()
{
var mock = this.IoCKernel.Bind<Core.Configuration.ICoreConfiguration>().ToMock();
mock.Setup(<<<<<<< How to substitute methods of this mocked objects??????
m =>
m.UserIdentities
.Returns(new List<UserIdentity>() {new UserIdentity("user1")}
);
Core.Kernel coreKernel = this.IoCKernel.Get<Core.Kernel>();
}
}
В соответствии с this documentation мне нужно вызвать метод Setup
для того, чтобы заменить методы. Тем не менее, метод Setup
недоступен.
Любые идеи?
Я читал документацию. Я прошу несколько примеров. Тем не менее, я считаю, что документация немного бедна.
EDIT
Я попытался это:
public void Test() {
Core.Configuration.UserIdentity userConfiguration = Core.Configuration.UserIdentity.Create("u1", "p1");
IEnumerable<Core.Configuration.UserIdentity> configurationUsers = new List<Core.Configuration.UserIdentity>() { userConfiguration };
this.IoCKernel.Get<Core.Configuration.ICoreConfiguration>().UserIdentities.Returns(configurationUsers);
//Testing
Core.Kernel kernel = this.IoCKernel.Get<Core.Kernel>();
kernel.Received(1).AddUser(Arg.Any<Core.Identity.UserIdentity>());
}
Тем не менее, я получаю это сообщение NSubstitute.Exceptions.NotASubstituteException
исключения теперь последнюю строку:
NSubstitute метода расширения, как. Received() может быть вызван только для объектов, созданных с помощью Substitute.For() и связанных с ними методов.
Как вы можете видеть, я пытаюсь протестировать метод AddUser
, который называется как минимум один раз. AddUser
должен быть вызван в соответствии с моей реализацией Core.Kernel
.
Спасибо Александр. Я пробовал код, добавленный в сообщение сейчас. Тем не менее, я получаю сообщение об исключении ... – Jordi
@Jordi Какое исключение вы получаете? Не могли бы вы поделиться более подробной информацией. –
Тип исключения: 'NSubstitute.Exceptions.NotASubstituteException' ... – Jordi