简体   繁体   中英

unit testing using VSTS wcf service in c#

  • I am trying to test my wcf service using the test suite in TFS.

    • I have a wcf service in Solution called Inspector .
    • In that the config file is in InspectorHost Project
    • There are helper Methods in MessageInspector project.
    • In this there is a method called CallIssService .
    • This IssService is the Service used by MessageInspector Project.
    • Though the service reference is in this project,the Config file is in InspectorHost project.
    • The test method generated for this method is CallIssServiceTest.cs .

    • Here is the porblem. When I try to run the test on this method the test fails and the error is " The URL to test is not specified. Tests configured to run in ASP.NET must specify a valid URL ". The URL it is asking is the URL of the IssService the MessageInspector Project is using.

Here is the code for test method. `

    /// <summary>
    ///A test for CallIss
    ///</summary>
    [TestMethod()] 
    [DeploymentItem("Inspector.MessageInspector.dll")]
    public void CallIssServiceTest()
    {
        CustomUserNameValidator_Accessor target = new CustomUserNameValidator_Accessor();
        target._userName = "tempUserName";
        target._password = "temptemp";

        Identity expected = new Identity();
        expected.UserID = "tempUserName";
        expected.board = new Board();
        expected.board.Code = "013";

        Identity actual;
        actual = target.CallIAA();
        Assert.IsNotNull(actual);
        Assert.AreEqual(expected.UserID, actual.UserID);
        Assert.AreEqual(expected.board.Code, actual.board.Code);  
    }

`

Here is the class to be tested.

    using IssService;
    /// <summary>
    /// This calles the Iss Service to Authenticate the user
    /// </summary>
    /// <returns></returns>
    private Identity CallIssService()
    {
        Identity userIdentity = 
         new IssServiceClient().VerifyUser(_userName, _password, null);
        return userIdentity;
    }

Can some body please help me understand what is the mistake I am doing or is there anything more to be done in this context.

Thanks in advance for any help.

Regards, Chand.

Fix ( this link helped me. )


1) In the LocalTestRun.testrunConfigfile/deployment the Web.Config file in host project is selected.Click Apply and save this.

2) A RenameWebConfig.bat file is added in the folder of test project with below one line of code indicating it to copy the Web.config file and rename it every time there is a new build.

rename web.config UAWebService.TestProject.dll.config

Hence the issue of Config settings not visible to the test project is defeated. Wonder why Microsoft skipped this aspect ;)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM