-
Notifications
You must be signed in to change notification settings - Fork 337
Testing
If you are using Dependency Injection in your project you don't need to do something special. Just create a mock for IPopupNavigation
and inject it in your class.
If you don't use Dependency Injection in your project you can mock INavigationService
as well.
In this way, you have to mock INavigationService
or create your own implementation of INavigationService
and set it to NavigationService
class. To do it you should use Rg.Plugins.Popup.Services.PopupNavigation.SetInstance(yourInstance)
. If you would like to reset an instance to default you can call Rg.Plugins.Popup.Services.PopupNavigation.RestoreDefaultInstance()
.
Also, PopupNavigation.SetInstance
and PopupNavigation.RestoreDefaultInstance()
methods have [EditorBrowsable(EditorBrowsableState.Never)]
attribute and your VS can hide it. Don't worry this code will be compiled fine anyway.
using NUnit.Framework;
using Rg.Plugins.Popup.Contracts;
using Rg.Plugins.Popup.Services;
namespace Project.Tests
{
[TestFixture]
public class YourTest
{
[SetUp]
public void Setup()
{
var instance = new Mock<INavigationService>();
// Configuration mock
...
PopupNavigation.SetInstance(instance);
}
[Test]
public void Your_Test()
{
// It's your mock of INavigationService
var popupInstance = PopupNavigation.Instance;
// Do your tests
...
}
}
}