Acumatica Test SDK - 在长时间运行中与重定向交互

时间:2018-04-11 18:57:20

标签: acumatica

我们在各种自定义屏幕上有多个操作,可以创建实体然后重定向到它们。我似乎无法弄清楚如何捕获创建的新实体是什么,并在测试sdk中调用操作时对其执行任何操作。

测试框架是否能够在长时间运行的操作中处理重定向?如果是这样,你如何处理它们?是否可以捕获创建的新对象?我能够验证长时间运行的操作是否成功或是否有错误,但是由于页面重定向并且不再在UI中,因此无法尝试访问操作。正如您在屏幕截图中看到的那样,我推送CreateJob操作,然后启动一个长时间运行的操作,最终重定向到创建的作业。

#region Step 1: Create Base Quote
        using (TestExecution.CreateTestCaseGroup("Step 1: Create Base Quote"))
        {
            Quote quote = new Quote();
            quote.OpenScreen(true);
            quote.Insert();
            quote.Summary.BAccountID.Select("0000467");
            quote.Summary.OpportunityName.Type("UAT Test");

            quote.Products.New();
            quote.Products.Row.InventoryID.Select("P46");
            quote.Products.Row.Quantity.Type(5000);
            quote.Products.Row.CuryUnitPrice.Type(0.03);

            quote.Save();

            quote.CreateJob();

            quote.VerifyLongOperation(quote.CreateJob, true);


        }
        #endregion

enter image description here

1 个答案:

答案 0 :(得分:0)

以下是我认为与您的问题有关的SDK中的一些代码。如果将正确的WaitAction添加到扩展构造函数中的流程中,那么完成后,您应该能够使用正确的对象。

public JournalEntry()
{
     Details.ToolBar.ViewDocument.WaitAction = delegate
    {
        Wait.WaitForNewWindowToOpen();
        Wait.WaitForPageToLoad();
    }
}
...
JournalEntry JournalEntry = new JournalEntry();
JournalEntry.OpenScreen();
JournalEntry.Summary.Module.Select("AP");
JournalEntry.Last();
JournalEntry.Details.ViewDocument();

Bill Bill = new Bill();
Bill.Cancel();
Bill.CloseWindow();