A unit test is a function that tests a unit of work.
MSTest is a unit testing framework.
MSTest is integrated with Visual Studio.
Creating The First Unit Test Example
Add a Unit Test Project to the solution.- Right click on the solution.
- Add a new project.
- Under Visual C#, select Unit Test Project in the Test category.
Decorate the Test Method with TestMethod attribute.
To write the unit test we follow the AAA pattern.
- Arrange : Initializes objects and sets the value of the data that is passed to the method being tested.
- Act : Invokes the method being tested.
- Assert : Verifies that the method being tested behaves as expected.
assert - state a fact or belief confidently and forcefully
Run The Unit Test
- Select the TEST menu.
- Select windows.
- Select Test Explorer.
- Within the Test Explorer we can see all the unit tests.
- Right click on an unit test and select Run Selected Tests.
- Check the test result.
Unit Test Naming Convention
[UnitOfWork_StateUnderTest_ExpectedBehavior]- Unit of work : the name of the method being tested
- State under test : the input values for the method
- Expected behavior : what the method returns for the specified input
Unit Test Example - The Method Being Tested
namespace MyClassLibrary { public class Calculator { public int Divide(int numerator, int denominator) { int result = numerator / denominator; return result; } } }
Unit Test Example - The Test Method And Test Class
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace MyClassLibrary.Tests { [TestClass] public class CalculatorTests { [TestMethod] public void Divide_PositiveNumbers_ReturnPositiveQuotient() { // Arrange : Initializes objects and sets the value of the data that is passed to the method being tested. int expected = 5; int numerator = 20; int denominator = 4; // Act : Invokes the method being tested. MyClassLibrary.Calculator calculator = new MyClassLibrary.Calculator(); int actual = calculator.Divide(numerator, denominator); // Assert : Verifies that the method being tested behaves as expected. Assert.AreEqual(expected, actual); } [TestMethod] public void Divide_NegativeNumbers_ReturnPositiveQuotient() { // Arrange : Initializes objects and sets the value of the data that is passed to the method being tested. int expected = 5; int numerator = -20; int denominator = -4; // Act : Invokes the method being tested. MyClassLibrary.Calculator calculator = new MyClassLibrary.Calculator(); int actual = calculator.Divide(numerator, denominator); // Assert : Verifies that the method being tested behaves as expected. Assert.AreEqual(expected, actual); } } }
MSTest Unit Testing Tutorial for beginners
What is a Unit Test
Creating your first unit test
Benefits of unit testing
Unit testing and continuous integration
Unit test naming convention
0 留言