Среда
Версия Rhino Mocks: 3.6.1
Visual Studio: 2017
Resharper: 2017.3.3
Nunit: 2.6.4
Iзапустить 2 тестовых прибора вместе, используя Resharper.При этом я получаю сообщение об ошибке:
System.InvalidOperationException: предыдущий метод 'IService.DoThing ();'требует возвращаемого значения или исключения, чтобы бросить.в Rhino.Mocks.Impl.RecordMockState.AssertPreviousMethodIsClose () в Rhino.Mocks.Impl.RecordMockState.Replay () в Rhino.Mocks.MockRepository.ReplayCore (Object obj, Boolean checkIcksExxohinohinoR] (T mock, функция 2 action)
at Rhino.Mocks.RhinoMocksExtensions.Stub[T,R](T mock, Function
2 действие) на MobileServices.Api.Tests.Unit.TestFixture2.d__2.MoveNext () в C: \ SCM \ MyProject.Tests.Unit \ ExampleTests.cs: строка 42 ---Конец трассировки стека из предыдущего местоположения, в котором было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в NUnit.Framework.Internal.AsyncInvocationRegion.AsyncTaskInvocationRegion.WaitForPendingOperationsToComplenIn..Contribute. invision.rac..TestMethodCommand.RunAsyncTestMethod (контекст TestExecutionContext)
Когда я запускаю два тестовых светильника несколько раз, источник теста для ошибки постоянно изменяется между TestFixture1.Test1 на TestFixture2.Test1.Когда я запускаю тестовые приборы в изоляции, все проходит.Это проблема с Rhino Mocks и многопоточностью?
using Project.Tests.Unit.SupportingClasses;
using NUnit.Framework;
using System.Threading.Tasks;
using Rhino.Mocks;
namespace Project.Tests.Unit
{
[TestFixture]
public class TestFixture1
{
private IService _service;
[SetUp]
public void SetUp()
{
_service = MockRepository.GenerateMock<IService>();
}
[Test]
public async Task Test1()
{
_service.Stub(s => s.DoThing()).Return(Task.FromResult(true));
var response = await _service.DoThing();
}
}
[TestFixture]
public class TestFixture2
{
private IService _service;
[SetUp]
public void SetUp()
{
_service = MockRepository.GenerateMock<IService>();
}
[Test]
public async Task Test1()
{
_service.Stub(s => s.DoThing()).Return(Task.FromResult(true));
var response = await _service.DoThing();
}
}
}
namespace Project.Tests.Unit.SupportingClasses
{
public interface IService
{
Task<bool> DoThing();
}
}