chevron-thin-right chevron-thin-left brand cancel-circle search youtube-icon google-plus-icon linkedin-icon facebook-icon twitter-icon toolbox download check linkedin phone twitter-old google-plus facebook profile-male chat calendar profile-male
+2 votes

Project type: Xamarin

Unit Test Framework: Nunit 3.6.1

TypeMock 8.6.0.10

I have my unit tests in a separate project. I am testing out a simple ViewModel with a single Property that is mocked. Not mocking the call and running in Resharper causes the error that I see in SmartRunner when the call is mocked. Very odd.

Here is my test class

 public readonly DependencyServiceStub _dependencyService = new DependencyServiceStub();

        [OneTimeSetUp]
        public void OneTimeSetup()
        {
            //Mock<Server> m = new Mock<Server>();
            //Isolate.NonPublic.StaticField<Server>("Instance").Value = new Server();

            var s = Isolate.Fake.AllInstances<Server>();
            Isolate.NonPublic.Property.WhenGetCalled(s, "NetworkCredential").WillReturn(new NetworkCredential());
            _dependencyService.Register<Server>(s);
        }

        [Test]
        public void the_vm_should_spinup()
        {
            var sut = new XmproLoginViewModel(_dependencyService);
            
            sut.ShouldNotBeNull();
        }

When I bebug the test in SmartRunner the Server class I am mocking is actually getting its ctor called. But not when debugging the test with Resharpers Test Runner. The full property and  chain that I am mocking for is:

Server.cs

public static Server Instance // => _server ?? (_server = new Server());
        {
            get
            {
                if (_server == null)
                    _server = new Server();
                return _server;
            }
        }

MyViewModel.cs 
if (Server.Instance.NetworkCredential != null)

I tried mocking the return of .Instance specifically, but TM complained there was not a Property called "Instance", but .NetworkCredentials was fine.

Thanks for any ideas.

 

asked by adamhill (620 points)

Please log in or register to answer this question.

...