Escrevendo Testes para Axe DevTools for Web em C#
Como escrever testes eficazes para acessibilidade usando Axe DevTools for Web para C#
Este guia fornece testes de exemplo para NUnit e MSTest. Todos os testes usam a classe AxeReporting para criar resultados de relatórios iniciais. Para mais informações sobre as classes de teste do Axe DevTools, visite a Referência de API C#.
Um teste básico padrão
O teste a seguir chama axe.Analyze() para analisar a página, compara os resultados com a asserção e cria uma saída de relatório inicial usando a classe AxeReporting.
Sintaxe do NUnit
[Test]
public void AccessibilityAnalyzeAsync()
{
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "basic analyze");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}Sintaxe do MSTest
[TestMethod]
public void AccessibilityAnalyzeAsync()
{
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "basic analyze");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}Testando estados e fluxos de página
Este caso de teste chama axe.Analyze() para escanear a página em diferentes estados ou fluxos, compara os resultados com a asserção e cria uma saída de relatório inicial:
Sintaxe do 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));
}Sintaxe do 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);
}Testando apenas com regras específicas
Este teste chama axe.Analyze() para escanear a página com regras especificadas:
Sintaxe do 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));
}Testando com regras específicas desativadas
Este teste chama axe.Analyze() para escanear com regras específicas desativadas:
Sintaxe do 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));
}Sintaxe do 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);
}Testando com um conjunto específico de regras
Este teste chama axe.Analyze() para escanear a página com um conjunto de regras especificado, neste caso 508:
Sintaxe do 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));
}Sintaxe do 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);
}Testando uma porção específica da página (teste específico)
O teste a seguir chama axe.Analyze(); para excluir do teste o conteúdo associado ao ID #header e garante que o conteúdo com o ID #homecontent seja testado:
Sintaxe do 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));
}Sintaxe do 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);
}