0% found this document useful (0 votes)
292 views1 page

Mstest Unit Testing Framework Cheat Sheet: Installation Attributes

The document provides a cheat sheet summarizing the MSTest unit testing framework, including how to install and configure it, the different attributes used to mark tests, test execution workflow, data-driven testing, and common assertions. It compares MSTest attributes and functionality to those of NUnit and xUnit.net and includes examples of setting up and running tests with MSTest.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
292 views1 page

Mstest Unit Testing Framework Cheat Sheet: Installation Attributes

The document provides a cheat sheet summarizing the MSTest unit testing framework, including how to install and configure it, the different attributes used to mark tests, test execution workflow, data-driven testing, and common assertions. It compares MSTest attributes and functionality to those of NUnit and xUnit.net and includes examples of setting up and running tests with MSTest.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

MSTest Unit Testing Framework Cheat Sheet

Installation Attributes

Install-Package MSTest.TestFramework
NUnit MSTest v2.x. xUnit.net 2.x Comments
Install-Package MSTest.TestAdapter
[Test] [TestMethod] [Fact] Marks a test method.
Install-Package Microsoft.NET.Test.Sdk

[TestFixture] [TestClass] n/a Marks a test class.

Test Execution Workflow


Triggered before every
[SetUp] [TestInitialize] Constructor
test case.
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace MSTestUnitTests
{
Triggered after every test
[TearDown] [TestCleanup] IDisposable.Dispose
// A class that contains MSTest unit tests. (Required) case.
[TestClass]
public class YourUnitTests
{ One-time triggered
[AssemblyInitialize] [OneTimeSetUp] [ClassInitialize] IClassFixture<T> method before test cases
public static void AssemblyInit(TestContext context) start.
{
// Executes once before the test run. (Optional)
} One-time triggered
[ClassInitialize] [OneTimeTearDown] [ClassCleanup] IClassFixture<T> method after test cases
public static void TestFixtureSetup(TestContext context)
end.
{
// Executes once for the test class. (Optional)
}
[Ignore("reason")] [Ignore] [Fact(Skip="reason")] Ignores a test case.
[TestInitialize]
public void Setup()
{ Sets arbitrary metadata
[Property] [TestProperty] [Trait]
// Runs before each test. (Optional) on a test.
}
[AssemblyCleanup]
public static void AssemblyCleanup() Configures a data-driven
{
[Theory] [DataRow] [Theory]
test.
// Executes once after the test run. (Optional)
}
Categorizes the test cases
[ClassCleanup] [Category("")] [TestCategory("")] [Trait("Category", "")]
or classes.
public static void TestFixtureTearDown()
{
// Runs once after all tests in this class are executed.
(Optional)
// Not guaranteed that it executes instantly after all tests Data Driven Test Attributes
from the class.
}

[DataRow(0, 0)]
[TestCleanup]
[DataRow(1, 1)]
public void TearDown()
[DataRow(2, 1)]
{
[DataRow(80, 23416728348467685)]
// Runs after each test. (Optional)
[DataTestMethod]
}
public void GivenDataFibonacciReturnsResultsOk(int number, int result)
// Mark that this is a unit test method. (Required)
{
[TestMethod]
var fib = new Fib();
public void YouTestMethod()
var actual = fib.Fibonacci(number);
{
Assert.AreEqual(result, actual);
// Your test code goes here.
}
}
}
}

Data Driven Test CSV Data Driven Test Dynamic Data

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "TestsData.csv", [DataTestMethod]


"TestsData#csv", DataAccessMethod.Sequential)] [DynamicData(nameof(GetData), DynamicDataSourceType.Method)]
[TestMethod] public void TestAddDynamicDataMethod(int a, int b, int expected)
public void DataDrivenTest() {
{ var actual = _calculator.Add(a, b);
int valueA = Convert.ToInt32(this.TestContext.DataRow["valueA"]); Assert.AreEqual(expected, actual);
int valueB = Convert.ToInt32(this.TestContext.DataRow["valueB"]); }
int expected = Convert.ToInt32(this.TestContext.DataRow["expectedResult"]); public static IEnumerable<object[]> GetData()
} {
yield return new object[] { 1, 1, 2 };
yield return new object[] { 12, 30, 42 };
yield return new object[] { 14, 1, 15 };
}

Assertions

Assert.AreEqual(28, _actualFuel); // Tests whether the specified values are equal.


Assert.AreNotEqual(28, _actualFuel); // Tests whether the specified values are unequal. Same as AreEqual for numeric values.
Assert.AreSame(_expectedRocket, _actualRocket); // Tests whether the specified objects both refer to the same object
Assert.AreNotSame(_expectedRocket, _actualRocket); // Tests whether the specified objects refer to different objects
Assert.IsTrue(_isThereEnoughFuel); // Tests whether the specified condition is true
Assert.IsFalse(_isThereEnoughFuel); // Tests whether the specified condition is false
Assert.IsNull(_actualRocket); // Tests whether the specified object is null
Assert.IsNotNull(_actualRocket); // Tests whether the specified object is non-null
Assert.IsInstanceOfType(_actualRocket, typeof(Falcon9Rocket)); // Tests whether the specified object is an instance of the expected type
Assert.IsNotInstanceOfType(_actualRocket, typeof(Falcon9Rocket)); // Tests whether the specified object is not an instance of type
StringAssert.Contains(_expectedBellatrixTitle, "Bellatrix"); // Tests whether the specified string contains the specified substring
StringAssert.StartsWith(_expectedBellatrixTitle, "Bellatrix"); // Tests whether the specified string begins with the specified substring
StringAssert.Matches("(281)388-0388", @"(?d{3})?-? *d{3}-? *-?d{4}"); // Tests whether the specified string matches a regular expression
StringAssert.DoesNotMatch("281)388-0388", @"(?d{3})?-? *d{3}-? *-?d{4}"); // Tests whether the specified string does not match a regular expression
CollectionAssert.AreEqual(_expectedRockets, _actualRockets); // Tests whether the specified collections have the same elements in the same order and quantity.
CollectionAssert.AreNotEqual(_expectedRockets, _actualRockets); // Tests whether the specified collections does not have the same elements or the elements are in a different order and quantity.
CollectionAssert.AreEquivalent(_expectedRockets, _actualRockets); // Tests whether two collections contain the same elements.
CollectionAssert.AreNotEquivalent(_expectedRockets, _actualRockets); // Tests whether two collections contain different elements.
CollectionAssert.AllItemsAreInstancesOfType(_expectedRockets, _actualRockets); // Tests whether all elements in the specified collection are instances of the expected type
CollectionAssert.AllItemsAreNotNull(_expectedRockets); // Tests whether all items in the specified collection are non-null
CollectionAssert.AllItemsAreUnique(_expectedRockets); // Tests whether all items in the specified collection are unique
CollectionAssert.Contains(_actualRockets, falcon9); // Tests whether the specified collection contains the specified element
CollectionAssert.DoesNotContain(_actualRockets, falcon9); // Tests whether the specified collection does not contain the specified element
CollectionAssert.IsSubsetOf(_expectedRockets, _actualRockets); // Tests whether one collection is a subset of another collection
CollectionAssert.IsNotSubsetOf(_expectedRockets, _actualRockets); // Tests whether one collection is not a subset of another collection
Assert.ThrowsException<ArgumentNullException>(() => new Regex(null)); // Tests whether the code specified by delegate throws exact given exception of type T

Execute Tests in Parallel

<?xml version="1.0" encoding="utf-8"?>


<RunSettings>
<MSTest>
<Parallelize>
<Workers>8</Workers>
<Scope>MethodLevel</Scope>
</Parallelize>
</MSTest>
</RunSettings>

You might also like