Prüfen Sie eine Methode aufgerufen wird oder nicht im Unit-Test

Habe ich ein unit-test-ich bin überprüfung, ob eine Methode einmal aufgerufen wird oder nicht, so versuchte ich auf diese Weise:-

Dies ist mein Mock ILicenseManagerService und ich bin übergeben Ihr Objekt durch construstor.

public Mock<ILicenseManagerService> LicenseManagerService { get { return SetLicenseManagerServiceMock(); } }

    private Mock<ILicenseManagerService> SetLicenseManagerServiceMock()
    {
        var licencemangerservicemock = new Mock<ILicenseManagerService>();
        licencemangerservicemock.Setup(m => m.LoadProductLicenses()).Returns(ListOfProductLicense).Verifiable();

        return licencemangerservicemock;
    }

    public static async Task<IEnumerable<IProductLicense>> ListOfProductLicense()
    {
        var datetimeoffset = new DateTimeOffset(DateTime.Now);

        var lst = new List<IProductLicense>
        {
            GetProductLicense(true, datetimeoffset, false, "1"),
            GetProductLicense(true, datetimeoffset, false, "2"),
            GetProductLicense(true, datetimeoffset, true, "3")
        };

        return lst;
    }

Ich bin mit diesem mock-Objekt zu setzen _licenseManagerService und aufrufen der LoadProductLicenses () - Methode im test. wie diese. Lizenzen kommen in Ordnung.

var licenses = (await _licenseManagerService.LoadProductLicenses()).ToList();

Mein Versuch, die für die überprüfung der Aufruf dieser Methode -

 LicenseManagerService.Verify(m => m.LoadProductLicenses(),Times.Once);

Aber wenn ich im Einsatz mein unit-test eine Ausnahme kommen, die sagen, die Methode ist nicht invocked überhaupt.
wo bin ich falsch??

BEARBEITEN @dacastro ich bin aufrufen der gleichen mock-hier ist mein unit-test.

[TestMethod]
    [TestCategory("InApp-InAppStore")]
    public async Task return_products_from_web_when_cache_is_empty()
    {
        //this class basically for setting up external dependencies
        //Like - LicenceManagerService in context, i am using this mock only no new mock.
        var inAppMock = new InAppMock ();                  


        //object of Class under test- I used static method for passing external         
        //services for easy to change 
        var inAppStore = StaticMethods.GetInAppStore(inAppMock);

        //method is called in this method
        var result = await inAppStore.LoadProductsFromCacheOrWeb();

        //like you can see using the same inAppMock object and same LicenseManagerService
        inAppMock.LicenseManagerService.Verify(m => m.LoadProductLicenses(),Times.Once);


    }

InformationsquelleAutor loop | 2014-06-25

Schreibe einen Kommentar