Adding content to 113-testing

pull/3294/head
mouaaz 2 years ago
parent 25ea9aeb00
commit 817c2f2bb2
  1. 9
      src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/100-selenium.md
  2. 10
      src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/101-playwright.md
  3. 9
      src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/102-puppeteer.md
  4. 9
      src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/103-cypress.md
  5. 10
      src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/index.md
  6. 10
      src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/100-fluent-assertions.md
  7. 9
      src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/101-shouldly.md
  8. 10
      src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/102-mstest.md
  9. 10
      src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/103-xunit.md
  10. 9
      src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/104-nunit.md
  11. 9
      src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/105-nsubstitute.md
  12. 10
      src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/106-moq.md
  13. 9
      src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/107-fake-it-easy.md
  14. 10
      src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/index.md
  15. 10
      src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/100-web-application-factory.md
  16. 10
      src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/101-test-server.md
  17. 10
      src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/index.md
  18. 10
      src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/100-spec-flow.md
  19. 10
      src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/101-bddfy.md
  20. 10
      src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/102-light-bdd.md
  21. 9
      src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/index.md
  22. 10
      src/roadmaps/aspnet-core/content/113-testing/index.md

@ -1 +1,8 @@
# Selenium
# Selenium
Selenium is an open-source library that allows developers to automate web browsers and simulate user interactions, it's commonly used for testing web applications. It can be integrated with .NET and provides a .NET binding for interacting with the Selenium API. The Selenium WebDriver API for .NET allows developers to write tests for web applications in C# or other .NET languages and supports various programming paradigms like Page Object Model.
To learn more, visit the following links:
- [Automated UI Tests with Selenium and ASP.NET](https://code-maze.com/selenium-aspnet-core-ui-tests/)
- [Selenium Web Driver in .NET](https://stephan-bester.medium.com/automated-testing-with-selenium-web-driver-in-net-bde6854d3207)

@ -1 +1,9 @@
# Playwright
# Playwright
Playwright is an open-source library for automating web browsers built by Microsoft, similar to Selenium, it's commonly used for testing web applications. It's built on top of the .NET Core runtime and it provides bindings for C#, it allows developers to write tests for web applications in C# or other .NET languages. Playwright is designed to be fast and reliable and allows developers to run tests in multiple browsers.
To learn more, visit the following:
- [Playwright for .NET](https://github.com/microsoft/playwright-dotnet)
- [How to test Apps with Playwright and .NETs](https://www.twilio.com/blog/test-web-apps-with-playwright-and-csharp-dotnet)
- [End-to-End Tests With ASP.NET and Playwright](https://khalidabuhakmeh.com/end-to-end-test-with-aspnet-core-xunit-and-playwright)

@ -1 +1,8 @@
# Puppeteer
# Puppeteer
Puppeteer is an open-source library for automating web browsers, similar to Selenium and Playwright. It's built on top of the Chrome DevTools protocol and it provides a set of APIs that allows developers to interact with web browsers and simulate user interactions, such as clicking buttons, filling out forms, and navigating between pages. It's commonly used for testing web applications, web scraping, and generating screenshots and PDFs of web pages. Puppeteer for .NET is built on top of the .NET Core runtime and it provides bindings for C# and allows developers to write tests for web applications in C# or other .NET languages.
For more information, visit the following links:
- [Why use Puppeteer?](https://www.kiltandcode.com/puppeteer-sharp-crawl-the-web-using-csharp-and-headless-chrome/)
- [Documentations of Puppeteer](https://www.puppeteersharp.com/)

@ -1 +1,8 @@
# Cypress
# Cypress
Cypress is an open-source end-to-end testing framework for web applications, it's built on top of JavaScript and provides a set of APIs that allows developers to automate browser interactions. It's commonly used for testing web applications, as it can be used to automate browser-based tests and assert that the application behaves as expected. Cypress for .NET is not built on top of the .NET Core runtime and it does not provide bindings for C# or any other .NET languages, it's built on top of JavaScript and can be run in the browser.
To learn more, visit the following links:
- [Cypress - End To End Testing Tool](https://www.c-sharpcorner.com/article/getting-started-with-cypress-io/)
- [Overview of Cypress](https://www.cypress.io/)

@ -1 +1,9 @@
# E2e testing
# E2E Testing
E2E testing is a method of testing the complete functionality of an application, from start to finish, it's used to test the entire workflow of an application and ensure that all the different components and features work together seamlessly. In the context of ASP.NET, E2E testing can be used to test web applications built using the ASP.NET framework. E2E testing can be done using frameworks such as Selenium, Playwright, and Cypress which allow developers to automate browser interactions and simulate user interactions with the application. E2E testing is an important aspect of software development and it helps to identify and fix issues early in the development process and ensure that the application behaves as expected when it is released to the users.
Visit the following links to learn more:
- [End-to-End Testing ASP.NET Core APIs](https://www.youtube.com/watch?v=WWN-9ahbdIU)
- [ASP.NET Core and its testing](https://blog.devgenius.io/asp-net-core-end-to-end-testing-52325e28e387)
- [Unit Test and E2E Test in ASP.NET](https://learn.microsoft.com/en-us/odata/webapi/unittest-e2etest)

@ -1 +1,9 @@
# Fluent assertions
# Fluent Assertions
Fluent Assertions is a fluent, readable, and extensible set of .NET extension methods that allow developers to write more natural and expressive assertions in their unit tests, it provides a fluent, fluent-like API that makes it easy to write assertions in a natural language-like syntax. In the context of ASP.NET, Fluent Assertions can be used in conjunction with test frameworks such as MSTest, xUnit, and NUnit to write more expressive and readable unit tests for the application. It provides advanced features such as support for collection-specific assertions, support for asynchronous code, and support for custom types. It's a widely used and open source library, it's very useful to improve code readability and make the test code more expressive.
To learn more, visit the following links:
- [Introduction of Fluent Assertions](https://fluentassertions.com/introduction)
- [Improving Unit Tests with Fluent Assertions](https://code-maze.com/unit-tests-with-fluent-assertions/)
- [Exploring Fluent Assertions in Unit Testing](https://www.meziantou.net/exploring-fluent-assertions.htm)

@ -1 +1,8 @@
# Shouldly
# Shouldly
Shouldly is a .NET library that provides a set of extension methods for writing expressive and readable assertions in unit tests, it's designed to be an alternative to traditional assertion libraries. In the context of ASP.NET, Shouldly can be used in conjunction with test frameworks such as MSTest, xUnit, and NUnit to write more expressive and readable unit tests for the application. It provides advanced features such as support for collection-specific assertions, support for asynchronous code, and support for custom types, also includes options to customize the error message.
To learn more, visit the following links:
- [How to Use Shouldly to Improve Unit Tests in .NET?](https://code-maze.com/improve-unit-tests-shouldly-dotnet/)
- [Improve Test Asserts with Shouldly](https://visualstudiomagazine.com/articles/2015/08/01/improve-test-asserts-with-shouldly.aspx?admgarea=ALM)

@ -1 +1,9 @@
# Mstest
# MSTest
MSTest is a unit testing framework for the .NET framework, it's one of the built-in test frameworks in Visual Studio and it's widely used for unit testing in the .NET ecosystem. In the context of ASP.NET, MSTest can be used to write unit tests for web applications built using the ASP.NET framework. MSTest provides features such as data-driven testing, parallel test execution, and test discovery and execution, it also provides the ability to run tests on multiple frameworks.
To learn more, visit the following links:
- [.NET Core testing with MSTest](https://www.oreilly.com/library/view/c-and-net/9781788292481/aa08c601-f374-4e31-be8e-8eb69d63bd19.xhtml)
- [Unit testing with MSTest and .NET](https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest)
- [Complete Guide of MSTest for Unit Testing in ASP.NET](https://sweetcode.io/a-complete-guide-of-mstest-for-unit-testing-in-asp-net/)

@ -1 +1,9 @@
# Xunit
# xUnit
xUnit is a unit testing framework for the .NET framework, it's an open-source testing framework that provides a set of attributes and classes that can be used to create unit tests. In the context of ASP.NET, xUnit can be used to write unit tests for web applications built using the ASP.NET framework. xUnit provides features such as support for data-driven tests, support for parallel test execution, and support for test discovery and execution, it also provides support for test isolation which allows developers to run tests in isolation from each other. xUnit is a popular alternative to other testing frameworks like MSTest and it does not rely on a test runner, instead relies on a console runner that can be run from the command line.
To learn more, visit the following links:
- [Unit Testing with xUnit in ASP.NET Core](https://code-maze.com/aspnetcore-unit-testing-xunit/)
- [Unit testing in .NET Core using and xUnit](https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-dotnet-test)
- [Getting Started With Unit Testing Using ASP.NET And xUnit](https://www.c-sharpcorner.com/article/getting-started-with-unit-testing-using-c-sharp-and-xunit/)

@ -1 +1,8 @@
# Nunit
# NUnit
NUnit is a unit testing framework for the .NET framework, it's an open-source testing framework that provides a set of attributes and classes that can be used to create unit tests. In the context of ASP.NET, NUnit can be used to write unit tests for web applications built using the ASP.NET framework. NUnit provides features such as support for data-driven tests, support for parallel test execution, and support for test discovery and execution, it also provides support for test isolation which allows developers to run tests in isolation from each other. NUnit is a popular alternative to other testing frameworks like MSTest and xUnit and it has a similar syntax as JUnit and it's considered as one of the oldest testing frameworks for .NET.
Visit the following links for more resources:
- [NUnit With C#](https://www.c-sharpcorner.com/UploadFile/84c85b/nunit-with-C-Sharp/)
- [Unit testing C# with NUnit and .NET Core](https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-nunit)

@ -1 +1,8 @@
# Nsubstitute
# NSubstitute
NSubstitute is a popular open-source .NET library that allows developers to create mock objects for use in unit testing, it is a powerful and flexible substitute for traditional mocking frameworks such as Moq and Rhino Mocks. In the context of ASP.NET, NSubstitute can be used to create mock objects for testing web applications built using the ASP.NET framework, it provides a simple and intuitive syntax for creating mock objects, setting up mock behavior, and making assertions on calls made to the mock objects. NSubstitute supports a wide range of testing frameworks and test runners, including MSTest, NUnit, and xUnit and it also supports various platforms including .NET Framework, .NET Core, Xamarin and Unity.
To learn more, visit the following links:
- [Overview of NSubstitute](https://github.com/nsubstitute/NSubstitute)
- [Getting started NSubstitute](https://nsubstitute.github.io/help/getting-started/)

@ -1 +1,9 @@
# Moq
# Moq
Moq is an open-source library for .NET that allows developers to create mock objects for use in unit testing, it is a popular mocking framework that provides a simple and intuitive syntax for creating mock objects and setting up mock behavior. In the context of ASP.NET, Moq can be used to create mock objects for testing web applications built using the ASP.NET framework, it provides a simple and expressive syntax for creating mock objects and setting up mock behavior. Moq supports a wide range of testing frameworks, including MSTest, NUnit, and xUnit and it also supports various platforms including .NET Framework, .NET Core and Xamarin. Moq is lightweight and easy to use, making it a good choice for developers who are new to mocking and unit testing, it also provides a rich set of features, such as support for setting up mock behavior, making assertions on calls made to the mock objects, and more.
Visit the following links to learn more:
- [What is use of Moq?](https://stackoverflow.com/questions/678878/what-is-use-of-moq)
- [Moq - Unit Test In .NET Core App](https://www.c-sharpcorner.com/article/moq-unit-test-net-core-app-using-mock-object/)
- [Getting started with Mocking using Moq in .NET](https://www.youtube.com/watch?v=9ZvDBSQa_so)

@ -1 +1,8 @@
# Fake it easy
# FakeitEasy
FakeItEasy is an open-source library for .NET that allows developers to create fake objects for use in unit testing, it is a powerful and easy-to-use mocking framework that provides a simple and intuitive syntax for creating fake objects and setting up fake behavior. In the context of ASP.NET, FakeItEasy can be used to create fake objects for testing web applications built using the ASP.NET framework, it provides a simple and expressive syntax for creating fake objects and setting up fake behavior. FakeItEasy supports a wide range of testing frameworks, including MSTest, NUnit, and xUnit. FakeItEasy is lightweight and easy to use, making it a good choice for developers who are new to mocking and unit testing, it also provides a rich set of features, such as support for setting up fake behavior, making assertions on calls made to the fake objects, and more. It also has a wide range of extension points for customizing the fakes to suit different needs.
Visit the following links to learn more:
- [Easy mocking in C# code with FakeItEasy library](https://devislandblog.wordpress.com/2018/05/09/easy-mocking-in-c-code-with-fakeiteasy-library/)
- [FakeItEasy when testing ASP.NET Core controllers](https://stackoverflow.com/questions/56170818/how-to-fake-an-interface-method-dynamically-with-fakeiteasy-when-testing-asp-net)

@ -1 +1,9 @@
# Unit testing
# Unit Testing
Unit testing is a software testing method in which individual units or components of a software application are tested in isolation from the rest of the application. The goal of unit testing is to validate that each unit of the software application is working as intended and that the interactions between units are also working as intended. In the context of ASP.NET, unit testing can be used to test individual components of a web application built using the ASP.NET framework. Unit testing is a good practice in software development as it helps to catch bugs early in the development process, improves the quality of the code and makes it more maintainable. Additionally, unit tests provide developers with a suite of automated tests that can be run against the application at any time. There are different Unit Testing frameworks available for .NET and many libraries for Mocking, Assertions, and fake objects.
To learn more, visit the following links:
- [Overview of .NET Unit Testing](https://www.toptal.com/dot-net/dotnet-unit-testing-tutorial)
- [Unit Testing in ASP.NET - Complete Tutorial](https://www.guru99.com/asp-net-unit-testing-project.html)
- [How to UnitTest ASP.Net MVC Controllers with XUnit ?](https://www.youtube.com/watch?v=VtPosbYAhD8)

@ -1 +1,9 @@
# Web application factory
# WebApplicationFactory
Web Application Factory (WAF) is a built-in feature of the ASP.NET Core framework that allows developers to create and configure a web application in a programmatic way. It provides a simple and flexible way to set up a web application for testing, without the need for a web server or a browser. The WAF can be used to create a test server that can be used to run integration tests or end-to-end tests for an ASP.NET Core web application, this allows developers to test the web application in a realistic environment, without the need for a physical web server or a browser. The WAF can be configured to use different services, middleware, and settings, depending on the needs of the application, this allows developers to easily set up a web application that is configured specifically for testing. The WAF also allows developers to test the web application against different configurations, such as different databases, different authentication providers, and different hosting environments.
To learn more, visit the following links:
- [Integration tests in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-7.0)
- [Integration Testing ASP.NET Core WebAPI Applications](https://www.youtube.com/watch?v=xs8gNQjCXw0)
- [How to use WebApplicationFactory in .NET](https://stackoverflow.com/questions/69058176/how-to-use-webapplicationfactory-in-net6-without-speakable-entry-point)

@ -1 +1,9 @@
# Test server
# TestServer
TestServer in ASP.NET is a programmatic way to create a web server that can be used to run integration or end-to-end tests for a web application. The TestServer simulates the behavior of a real web server, and allows developers to test the web application in a realistic environment, without the need for a physical web server or a browser. The TestServer can be created and configured using the built-in Web Application Factory (WAF) feature in ASP.NET Core. The WAF allows developers to configure the TestServer to use different services, middleware, and settings, depending on the needs of the application. The TestServer can also be used to test the web application against different configurations, such as different databases, different authentication providers, and different hosting environments.
To learn more, visit the following links:
- [Integration Tests with TestServer](https://visualstudiomagazine.com/articles/2017/07/01/testserver.aspx)
- [ASP.NET Core Integration Tests With TestServer](https://scotthannen.org/blog/2021/11/18/testserver-how-did-i-not-know.html)
- [How do you create a TestServer in .NET](https://stackoverflow.com/questions/69897652/how-do-you-create-a-test-server-in-net-6)

@ -1 +1,9 @@
# Integration testing
# Integration Testing
Integration testing in ASP.NET refers to the process of testing how different components or modules of a web application interact with each other. This type of testing is done to ensure that the different parts of the application are working together correctly and that the application as a whole is functioning properly. Integration testing typically involves testing the interactions between different layers of the application, such as the data access layer, the business logic layer, and the presentation layer. It can also involve testing the interactions between the web application and external systems, such as databases, web services, and other external APIs. Integration testing can be done using a variety of testing frameworks and tools, such as xUnit, NUnit, MSTest, and others. These frameworks provide the ability to create test cases that simulate different scenarios and test the application's behavior under different conditions.
Visit the following links to learn more:;
- [Integration tests in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-7.0)
- [Integration Testing ASP.NET Core WebAPI Applications](https://www.youtube.com/watch?v=xs8gNQjCXw0)
- [A Sample Project Integration Test In ASP.NET](https://www.youtube.com/watch?v=ziSKkR2nvis)

@ -1 +1,9 @@
# Spec flow
# SpecFlow
SpecFlow is an open-source tool that allows developers to create automated acceptance tests in a natural language format, such as Gherkin. SpecFlow is commonly used in the context of ASP.NET and other .NET technologies, to write acceptance tests for web applications. With SpecFlow, developers can write test scenarios using plain text in the Gherkin syntax, which uses a Given-When-Then format to describe the steps of a test. These scenarios can be written by non-technical stakeholders, such as business analysts or product owners, and can be easily understood by anyone who reads them. SpecFlow then converts these Gherkin scenarios into executable tests, which can be run using a variety of test runners, such as NUnit, xUnit, or MSTest. The tool also provides a set of bindings that allow developers to map the steps in the Gherkin scenarios to code in their application, making it easy to test specific functionality. Additionally, SpecFlow provides a set of advanced features, such as support for parameterized tests, background steps, and hooks, which allows developers to create more complex and powerful tests.
To learn more, visit the following links:
- [SpecFlow’s documentation](https://docs.specflow.org/_/downloads/specflow/en/latest/pdf/)
- [Getting Started with SpecFlow](https://docs.specflow.org/projects/getting-started/en/latest/index.html)
- [What is SpecFlow?](https://specflow.org/tools/specflow/)

@ -1 +1,9 @@
# Bddfy
# BDDfy
BDDfy is an open-source, fluent, and extensible BDD (Behavior-Driven Development) framework for .NET, which allows developers to create automated acceptance tests in a readable and expressive format. BDDfy is commonly used in the context of ASP.NET and other .NET technologies, to write acceptance tests for web applications. With BDDfy, developers can write test scenarios using a fluent API, which allows them to describe the behavior of their application in a natural language format. The framework also provides a set of extension methods, which can be used to add additional functionality, such as validating the output of a test, logging test results, or integrating with other testing tools. BDDfy also comes with a built-in test runner, which makes it easy to execute tests and view the results. The framework supports a variety of test runners, such as NUnit, xUnit, and MSTest, and can be integrated with other BDD frameworks, such as SpecFlow and Cucumber.
To learn more, visit the following links:
- [Using BDDfy for Unit Tests](https://www.michael-whelan.net/using-bddfy-for-unit-tests/)
- [Introducing BDDfy in ASP.NET](codeproject.com/Articles/205381/Introducing-BDDfy-the-simplest-BDD-framework-for-N)
- [Implement BDD with .NET](https://www.youtube.com/watch?v=GYN_srjAvyk)

@ -1 +1,9 @@
# Light bdd
# LightBDD
LightBDD is an open-source, lightweight, and easy-to-use BDD (Behavior-Driven Development) framework for .NET, which allows developers to write automated acceptance tests in a simple and readable format. LightBDD is commonly used in the context of ASP.NET and other .NET technologies, to write acceptance tests for web applications. LightBDD is designed to provide a simple, yet powerful, way to write BDD tests. It allows developers to write tests using a fluent API, which allows them to describe the behavior of their application in a natural language format. The framework also provides a set of extension methods, which can be used to add additional functionality, such as validating the output of a test, logging test results, or integrating with other testing tools. LightBDD also comes with a built-in test runner, which makes it easy to execute tests and view the results. The framework supports a variety of test runners, such as NUnit, xUnit, and MSTest, and can be integrated with other BDD frameworks, such as SpecFlow and Cucumber.
To learn more, visit the following links:
- [Getting started with Behavior Driven Development (BDD) in .NET](https://www.youtube.com/watch?v=EEeVU0z26u0)
- [Introduction To BDD using SpecFlow in ASP.NET](https://www.youtube.com/watch?v=8KPrhBqZ-kk)
- [The Lightweight Behavior Driven Development test framework](https://github.com/LightBDD/LightBDD)

@ -1 +1,8 @@
# Behavior testing
# Behavior Testing
Behavior testing, also known as Behavioral-Driven Development (BDD), is a software development methodology that focuses on the behavior of the system being developed, rather than its implementation. BDD is a variation of Test-Driven Development (TDD), which emphasizes the use of automated tests to drive the development of software. BDD frameworks such as SpecFlow, Cucumber, and LightBDD provide a set of tools for writing and executing BDD tests in the context of ASP.NET. These frameworks allow developers to write tests using a fluent API, which allows them to describe the behavior of their application in a natural language format. They also provide a set of extension methods, which can be used to add additional functionality, such as validating the output of a test, logging test results, or integrating with other testing tools.
To learn more, visit the following links:
- [A Complete Tutorial on ASP.NET Testing](https://www.lambdatest.com/blog/aspnet-testing/)
- [Learn Behavior Testing in ASP.NET](https://public.vectorly.team/articles/learn_Behavior_Testing_for_Tech_Lead_role_ASP.NET_Developer)

@ -1 +1,9 @@
# Testing
# Testing
Testing in ASP.NET is the process of evaluating the performance, functionality, and overall correctness of an application developed using the ASP.NET framework. There are several types of testing that can be performed on an ASP.NET application, including unit testing, integration testing, acceptance testing and E2E testing. Each type of testing has a different focus and is used at a different stage of the development process. Common testing frameworks for ASP.NET include MSTest, XUnit, NUnit, Selenium, Playwright, Puppeteer, Cypress, Specflow, Cucumber, and LightBDD.
To learn more, visit the following links:
- [A Complete Tutorial on ASP.NET Testing](https://www.lambdatest.com/blog/aspnet-testing/)
- [Unit test controller logic in ASP.NET](https://learn.microsoft.com/en-us/aspnet/core/mvc/controllers/testing?view=aspnetcore-7.0)
- [Integration tests in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-7.0)
Loading…
Cancel
Save