Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Ескертпе
Алдын ала қарау мүмкіндіктері өндірісті пайдалану үшін арналмаған және функционалдық шектеулі болуы мүмкін. Бұл мүмкіндіктер ресми жарияланудан бұрын қолжетімді, сондықтан тұтынушылар ерте қатынаса алады және кері байланыс бере алады.
Microsoft Power Fx — Power Apps тілінде қолданылатын қуатты төмен кодты тіл және оны теңшелетін сынақ функцияларын жасау үшін C# көмегімен кеңейтуге болады. Бұл мақала C# Power Fx сынақ функциясын жасау жолын түсіндіреді, бұл жасаушылар мен әзірлеушілер үшін үздіксіз тәжірибені қамтамасыз етеді.
«Жартас жоқ» кеңейту үлгісі Power Apps Сынақ механизмі пайдаланушылардың Power Apps Сынақ механизмінің мүмкіндіктерін ешбір кедергілерге соқпай кеңейте алатынын қамтамасыз етеді. Бұл модель әзірлеушілерге күрделі сценарийлерді өңдеу үшін Power Fx біріктірілуі мүмкін C# көмегімен теңшелетін функцияларды жасауға мүмкіндік береді.
Сынақ қозғалтқышының модульдері
Сынақ механизмінің үшін ішіндегі Power Fx Сынақ механизмінің модульдері кеңейтілу үлгісі арқылы құрастырылған. Сынақ механизмін кеңейтуге болатын мысалдар ретінде өнім кодын пайдалануға болады.
Келісім диалогының мысалы
Мұнда a Power Fx функцияның мысалы кептік қолданбадағы шартты келісім диалогын өңдеуге арналған код құрылымын қамтамасыз етеді.
A келісім диалогы бұл пайдаланушыларға белгілі бір ресурстарға кіруге немесе нақты әрекеттерді орындауға рұқсат сұрайтын шақыру. Бұл диалог қауіпсіздікті сақтау және пайдаланушылардың олардың атынан қабылданатын әрекеттер туралы хабардар болуын және олармен келісетінін қамтамасыз ету үшін өте маңызды.
Келісім диалогы маңызды, себебі ол рұқсатсыз кіру мен әрекеттерді болдырмауға көмектеседі. Ол кез келген құпия әрекеттерді орындамас бұрын пайдаланушылардың хабардар болуын және олардың нақты келісімін беруін қамтамасыз етеді. Бұл қолданба пайдаланушы деректеріне қатынасу немесе әрекеттерді орындау қажет сценарийлерде маңызды және бұл шартты әрекет автоматтандырылған сынақтарға әсер етуі мүмкін.
Тестілеудегі келісім диалогтары бар қиындықтар
Келісім диалогтық терезелерінің қиындықтарының бірі олар сынақтарды детерминистік емес ете алады. Шақыру пайдаланушы рұқсаттары немесе алдыңғы әрекеттесулер сияқты әртүрлі факторларға негізделген шартты түрде пайда болуы мүмкін. Бұл шартты көрініс тестілеу процесін қиындатуы мүмкін, өйткені сынақ механизмі осы диалогтарды тиісті түрде өңдеуі керек.
Күрделілігімен абстракциялау Power Fx
Power Fx келісім тілқатысу терезесін шартты түрде күту және қажет болса қосылымдарды жасау күрделілігін абстракциялауға көмектеседі. Жасаушылар келісім диалогтарын қарапайым және интуитивті түрде өңдеу логикасын анықтау үшін Power Fx пайдалана алады.
Мысал: келісім диалогын өңдеу Power Fx
Төменде пайдаланушы бетіндегі келісім диалогын өңдеу үшін Power Fx пайдалану мысалы берілген:
Preview.ConsentDialog(Table({Text: "Center of Excellence Setup Wizard"}))
Бұл мысалда ConsentDialog функция келісім диалогының көрінетінін тексереді. Егер солай болса, функция сынақ тіркелгісіне келісімді растайтын диалогқа жауап бере алады. Диалог өңделгеннен кейін қалған сынақ қадамдары орындалады.
Table аргументі келісім диалогтық күту процесінен шығуға мүмкіндік береді, егер берілген мәтіні бар белгі көрінсе.
C# көмегімен Power Fx сынақ функцияларын кеңейту
Келесі мысал осы мысалды аяқтау үшін бастапқы нүкте ретінде пайдаланылуы мүмкін үлгі контур коды болып табылады:
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
using Microsoft.Extensions.Logging;
using Microsoft.Playwright;
using Microsoft.PowerApps.TestEngine.Config;
using Microsoft.PowerApps.TestEngine.TestInfra;
using Microsoft.PowerFx;
using Microsoft.PowerFx.Core.Utils;
using Microsoft.PowerFx.Types;
namespace testengine.module
{
/// <summary>
/// This will check the custom pages of a model driven app looking for a consent dialog
/// </summary>
public class ConsentDialogFunction : ReflectionFunction
{
private readonly ITestInfraFunctions _testInfraFunctions;
private readonly ITestState _testState;
private readonly ILogger _logger;
private static TableType SearchType = TableType.Empty()
.Add(new NamedFormulaType("Text", FormulaType.String, displayName: "Text"));
/// <summary>
/// Constructor: Initializes the function with necessary dependencies,
/// including ITestInfraFunctions, ITestState, and ILogger.
/// </summary>
/// <param name="testInfraFunctions">The test infrastructure functions.</param>
/// <param name="testState">The test state.</param>
/// <param name="logger">The logger instance.</param>
public ConsentDialogFunction(ITestInfraFunctions testInfraFunctions,
ITestState testState,
ILogger logger) : base(DPath.Root.Append(
new DName("Preview")),
"ConsentDialog",
FormulaType.Blank,
SearchType)
{
_testInfraFunctions = testInfraFunctions;
_testState = testState;
_logger = logger;
}
/// <summary>
/// Execute Method: Logs the execution and calls the ExecuteAsync
/// method to handle the consent dialog.
/// </summary>
/// <param name="searchFor">The table value to search for.</param>
/// <returns>A blank value.</returns>
public BlankValue Execute(TableValue searchFor)
{
_logger.LogInformation("------------------------------\n\n" +
"Executing ConsentDialog function.");
ExecuteAsync(searchFor).Wait();
return FormulaValue.NewBlank();
}
/// <summary>
/// ExecuteAsync Method: Retrieves the page context and handles the consent dialog with a timeout.
/// </summary>
/// <param name="searchFor">The table value to search for.</param>
/// <returns>A task representing the asynchronous operation.</returns>
private async Task ExecuteAsync(TableValue searchFor)
{
var page = _testInfraFunctions
.GetContext()
.Pages
.Where(p => p.Url.Contains("main.aspx"))
.First();
// ... IPage to handle consent dialog with timeout
}
}
}
ConsentDialogFunction мысалының түсіндірмесі
-
Атау кеңістігі және импорттау: қажетті аттар кеңістігін импорттайды және
testengine.moduleаттар кеңістігін анықтайды. -
Сынып анықтамасы:
ConsentDialogFunctionсынып ReflectionFunction ден мұра алады жәнеConsentDialogтеңшелетін функцияны анықтайды. -
Конструктор: қажетті тәуелділіктермен функцияны инициализациялайды, соның ішінде
ITestInfraFunctions,ITestStateжәне ILogger. -
Орындау әдісі: Орындауды журналға жазады және келісім диалогын өңдеу үшін
ExecuteAsyncәдісті шақырады. - ExecuteAsync әдісі: бет мәтінмәнін шығарып алады және күту уақыты бар келісім диалогын өңдейді.