Escribiendo Pruebas para Axe DevTools para Web en C#
Cómo escribir pruebas efectivas para accesibilidad usando Axe DevTools para Web en C#
Esta guía proporciona ejemplos de pruebas para NUnit y MSTest. Todas las pruebas usan la clase AxeReporting para crear resultados de informes iniciales. Para más información sobre las clases de prueba de Axe DevTools, visite la Referencia de API de C#.
Una prueba básica por defecto
La siguiente prueba llama a axe.Analyze() para analizar la página, compara los resultados con la aserción, y crea una salida de informe inicial usando la clase AxeReporting.
Sintaxis de NUnit
[Test]
public void AccessibilityAnalyzeAsync()
{
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "basic analyze");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}Sintaxis de MSTest
[TestMethod]
public void AccessibilityAnalyzeAsync()
{
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "basic analyze");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}Pruebas de estados y flujos de página
Este caso de prueba llama a axe.Analyze() para escanear la página en diferentes estados, o en diferentes flujos de la página, compara los resultados con la aserción, y crea una salida de informe inicial:
Sintaxis de NUnit
[Test]
public void AccessibilityAnalyzeWithPageFlow()
{
var homeResults = axe.Analyze();
AxeReporting.CreateResultsOutput(homeResults, "home-page");
driver.FindElementByName("q").SendKeys("csun 2019 accepting new papers for presentations");
driver.FindElementById("go").Click();
var searchResults = axe.Analyze();
AxeReporting.CreateResultsOutput(searchResults,"search-results-page");
Assert.That(searchResults.Findings.Violations.Count, Is.EqualTo(0));
}Sintaxis de MSTest
[TestMethod]
public void AccessibilityAnalyzeWithPageFlow()
{
var homeResults = axe.Analyze();
AxeReporting.CreateResultsOutput(homeResults, "home-page");
driver.FindElementByName("q").SendKeys("csun 2019 accepting new papers for presentations");
driver.FindElementById("go").Click();
var searchResults = axe.Analyze();
AxeReporting.CreateResultsOutput(searchResults, "search-results-page");
Assert.IsTrue(searchResults.Findings.Violations.Count == 0);
}Pruebas con solo reglas específicas
Esta prueba llama a axe.Analyze() para escanear la página con reglas especificadas:
Sintaxis de NUnit
[Test]
public void AccessibilityAnalyzeWithSpecificRules()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specifc rules")).WithRules("heading-order", "link-name");
var results = axe.Analyze();
System.Console.WriteLine(results);
AxeReporting.CreateResultsOutput(results, "specific-rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}Pruebas con reglas específicas desactivadas
Esta prueba llama a axe.Analyze() para escanear con reglas específicas desactivadas:
Sintaxis de NUnit
[Test]
public void AccessibilityAnalyzeWithDisabledRules()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("disabled rules")).DisablingRules("heading-order", "link-name");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "disabled-rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}Sintaxis de MSTest
[TestMethod]
public void AccessibilityAnalyzeWithDisabledRules()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("disabled rules")).DisablingRules("heading-order", "link-name");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "disabled-rules");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}Pruebas con un conjunto de reglas específico
Esta prueba llama a axe.Analyze() para escanear la página con un conjunto de reglas especificado, en este caso 508:
Sintaxis de NUnit
[Test]
public void AccessibilityAnalyzeWith508Ruleset()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specific ruleset")).WithRuleset("508");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "508-rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}Sintaxis de MSTest
[TestMethod]
public void AccessibilityAnalyzeWith508Ruleset()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specific ruleset")).WithRuleset("508");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "508-rules");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}Pruebas de una parte específica de la página (prueba delimitada)
La siguiente prueba llama a axe.Analyze(); para excluir del análisis el contenido asociado con el ID #header y asegura que el contenido con el ID #homecontent sea probado:
Sintaxis de NUnit
[Test]
public void IncludingAndExcludingElements()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("excluding and including ruleset")).Excluding("#header").Including("#homecontent");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "Including-Excluding rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}Sintaxis de MSTest
[TestMethod]
public void IncludingAndExcludingElements()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("excluding and including ruleset")).Excluding("#header").Including("#homecontent");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "Including-Excluding rules");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}