mardi 2 août 2016

Unit testing not using correct mocking class

I am using Rhino.Mocks and Structure map to help unit test my code. I have several tests that pass when they are ran by themselves, but when ran as a group fail to pass. The setup code for these unit tests is:

[TestInitialize()]
public void Setup()
{
    x.For(IManager)().Use(Handler)();
}

In my tests, I stub out this interface and call the method.

        [TestMethod]
        public void AreMultiple_Test()
        {
            var mackIManager = MockRepository.GenerateMock<IManager>();
            mackIManager.Stub(u => u.GetTwoUserName(Arg<int>.Is.Anything)).Return(null);
            ObjectFactory.Inject(typeof(IManager), mackIManager);

            StepAdditionalActionBase actionBase = new StepAdditionalActionBase();
            bool areMultiple = actionBase.AreMultiple(new WorkOrder { Id = "123" });

            Assert.IsFalse(areMultiple);
        }

Test Method 2

        [TestMethod]
        public void AreMultiple_Test()
        {
            var mackIManager = MockRepository.GenerateMock<IManager>();
            mackIManager.Stub(u => u.GetTwoUserName(Arg<int>.Is.Anything)).Return("123");
            ObjectFactory.Inject(typeof(IManager), mackIManager);

            StepAdditionalActionBase actionBase = new StepAdditionalActionBase();
            bool areMultiple = actionBase.AreMultiple(new WorkOrder { Id = "123" });

            Assert.IsTrue(areMultiple);
        }

This is unit testing the following code.

public bool AreMultiple(WorkOrder workOrder)
    {
        string secondUser = _handler.GetTwoUserName(_workflowManager.GetNumberForProject(workOrder.Id));
        if (String.IsNullOrEmpty(secondUser ))
        {
            return false;
        }

        return true;
    }

When I run them by themselves, they work fine. When I run them together, the first passes and the second fails. When I debug the second one, I find that that the return value in the Stubbed method is still coming back as null. How do I get this to use the new Stubbed method.

Aucun commentaire:

Enregistrer un commentaire