Как получить ответ Ajax в TestMethod CUIT - PullRequest
0 голосов
/ 18 октября 2018

У меня есть тестовый метод в тестовом классе.Я использую кодированный интерфейс.Все, что я тестировал до сих пор, кажется хорошим.Теперь я хочу дождаться вызова Ajax, нажав кнопку Сохранить, но не знаю как.Возможно ли это сделать?И если мой ответ Ajax превышает 500 мс, тест не пройден.

Это мой пример класса:

 [TestInitialize]
    public void TestInitialize()
    {
        string serviceName = "xxxxxxx.exe";
        var binPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory)));
        string servicePath = @"\ServiceProjects\vvvvvv\bin\Debug\";
        string absolutePath = String.Format("{0}{1}{2}", binPath, servicePath, serviceName);

        Process.Start(absolutePath);

        BrowserWindow.CurrentBrowser = "ie";
        BrowserWindow.Launch(baseAddress);
    }

    [TestMethod]
    public void ManagerTestMethod()
    {

        this.UIMap.ManagerTestMethod_MobilePrefix();

    }

    [TestCleanup]
    public void TestCleanup()
    {

        this.UIMap.TestCleanup();

    }

И в этом методе ManagerTestMethod_MobilePrefix () я нажимаю кнопку сохранения:

        public void ManagerTestMethod_MobilePrefix()
    {
        #region Variable Declarations
        HtmlDiv uISljedećizahtjevNoPane = this.UIAddikoAPSInternetExpWindow.UIAddikoAPSDocument.UISljedećizahtjevNoPane;
        HtmlButton uIItemButton = this.UIAddikoAPSInternetExpWindow.UIAddikoAPSDocument.UIItemButton;
        HtmlCustom uIItemCustom = this.UIAddikoAPSInternetExpWindow.UIAddikoAPSDocument1.UIŠifarniciCustom.UIItemCustom;
        HtmlHyperlink uIMobilniprefiksHyperlink = this.UIAddikoAPSInternetExpWindow.UIAddikoAPSDocument1.UICodelistsSubMenuCustom.UIMobilniprefiksHyperlink;
        HtmlDiv uIItemPane = this.UIAddikoAPSInternetExpWindow.UIAddikoAPSDocument2.UIAps_mng_mobilephonepPane.UIItemPane;
        HtmlSpan uIItemPane1 = this.UIAddikoAPSInternetExpWindow.UIAddikoAPSDocument2.UIAps_mng_mobilephonepPane.UIItemPane1;
        HtmlEdit uIApsmngmobilephonepreEdit = this.UIAddikoAPSInternetExpWindow.UIAddikoAPSDocument2.UIApsmngmobilephonepreEdit;
        HtmlEdit uIApsmngmobilephonepreEdit1 = this.UIAddikoAPSInternetExpWindow.UIAddikoAPSDocument2.UIApsmngmobilephonepreEdit1;
        HtmlEdit uIApsmngmobilephonepreEdit2 = this.UIAddikoAPSInternetExpWindow.UIAddikoAPSDocument2.UIApsmngmobilephonepreEdit2;
        HtmlButton uISačuvatiButton = this.UIAddikoAPSInternetExpWindow.UIAddikoAPSDocument2.UISačuvatiButton;
        #endregion

        // Click '+ Sljedeći zahtjev + No' pane
        Mouse.Click(uISljedećizahtjevNoPane, new Point(1651, 234));

        // Click '+ Sljedeći zahtjev + No' pane
        Mouse.Click(uISljedećizahtjevNoPane, new Point(1778, 308));

        // Click '+' button
        Mouse.Click(uIItemButton, new Point(51, 23));

        // Click custom control
        Mouse.Click(uIItemCustom, new Point(48, 30));

        // Click 'Mobilni prefiks' link
        Mouse.Click(uIMobilniprefiksHyperlink, new Point(87, 18));

        // Set flag to allow play back to continue if non-essential actions fail. (For example, if a mouse hover action fails.)
        Playback.PlaybackSettings.ContinueOnError = true;

        // Mouse hover  pane at (1, 1)
        Mouse.Hover(uIItemPane, new Point(1, 1));

        // Reset flag to ensure that play back stops if there is an error.
        Playback.PlaybackSettings.ContinueOnError = false;

        // Click pane
        Mouse.Click(uIItemPane1, new Point(6, 5));

        // Type 'test1' in 'aps.mng.mobilephoneprefix.details.Code' text box
        uIApsmngmobilephonepreEdit.Text = this.ManagerTestMethod_MobilePrefixParams.UIApsmngmobilephonepreEditText;

        // Type '{Tab}' in 'aps.mng.mobilephoneprefix.details.Code' text box
        Keyboard.SendKeys(uIApsmngmobilephonepreEdit, this.ManagerTestMethod_MobilePrefixParams.UIApsmngmobilephonepreEditSendKeys, ModifierKeys.None);

        // Type 'test1' in 'aps.mng.mobilephoneprefix.details.CoreCode' text box
        uIApsmngmobilephonepreEdit1.Text = this.ManagerTestMethod_MobilePrefixParams.UIApsmngmobilephonepreEdit1Text;

        // Type '100' in 'aps.mng.mobilephoneprefix.details.Value' text box
        uIApsmngmobilephonepreEdit2.Text = this.ManagerTestMethod_MobilePrefixParams.UIApsmngmobilephonepreEdit2Text;

        // Click 'Sačuvati' button
        Mouse.Click(uISačuvatiButton, new Point(52, 20));
    }

Последний шаг важен для меня: Mouse.Click (uISačuvatiButton, new Point (52, 20));на этом шаге я выполняю Ajax-вызов на мой контроллер API для вставки данных.Я хочу иметь возможность получать проверки из моей формы, а также я хочу иметь возможность получать ответ от вызова Ajax, который запускается нажатием кнопки сохранения.

1 Ответ

0 голосов
/ 18 октября 2018

У меня может быть идея, которую вы можете попробовать.У меня никогда не было ситуации, подобной вашей, поэтому я не могу подтвердить, что она будет работать.

В этой форме можно предоставить скрытый элемент управления со значением, которое будет установлено только после завершения вызова Ajax.Если вы можете найти этот элемент управления с помощью теста закодированного пользовательского интерфейса, вы можете запустить таймер на 500 мс после нажатия этой кнопки сохранения.

...