csharp 单元测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 单元测试相关的知识,希望对你有一定的参考价值。

[Test]
public void MyTest(
    [Values(1,2,3)] int x,
    [Values("A","B")] string s)
  {
      //Test zostanie wykonany 6 razy: MyTest(1, "A"), MyTest(1, "B"), MyTest(2, "A"), MyTest(2, "B"), MyTest(3, "A"), MyTest(3, "B")
  }
using Microsoft.VisualStudio.TestTools.UnitTesting;

//Pominięcie testu
[Ignore]
public void NazwaTestu() {}

//Priorytet
[Priority(0)]
public void NazwaTestu() {}

//Kategoria
[TestCategory("Nazwa kategorii")]
public void NazwaTestu() {}

//Spodziewany wyjątek
[ExpectedException(typeof(DivideByZeroException))]
public void NazwaTestu() {}

//Inicjalizacja niezbędnych elementów
[TestInitialize]
public void NazwaMetody() {}

//Wykorzysanie zewnętrznego źródła danych
[TestMethod]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\NazwaPliku.xml", "nazwa_tabeli", DataAccessMethod.Sequential)]
public void NazwaTestu() {}

//Biblioteka NUnit

//Przykładowe argumenty
[TestCase(12,3,4)]
[TestCase(12,2,6)]
[TestCase(12,4,3)]
public void DivideTest(int n, int d, int q)
{
  Assert.AreEqual( q, n / d );
}

//Przykladowe argumenty i spodziewane wyniki
[TestCase(12,3, Result=4)]
[TestCase(12,2, Result=6)]
[TestCase(12,4, Result=3)]
public int DivideTest(int n, int d)
{
  return( n / d );
}
public TestContext TestContext{ get; set; }

[TestMethod]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "files.csv", "files#csv", DataAccessMethod.Sequential)]
public void TestCase()
{
    //string source = (string) TestContext.DataRow["source"]; // get the value from the 'source' column
    //string target = (string) TestContext.DataRow["target"]; // get the value from the 'target' column

    //Assert.IsTrue(testObj.VerifyFiles(source, target));
}
//using Microsoft.VisualStudio.TestTools.UnitTesting;
//using System.Data;

public TestContext TestContext { get; set; }

//Test z wykorzystaniem zewnętrznego źródła danych - pliku .xml
[TestMethod]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\NazwaPliku.xml", "nazwa_tabeli", DataAccessMethod.Sequential)]
public void NazwaTestu()
{
	var x = this.TestContext.DataRow["nazwa_kolumny"].ToString());
	var y = this.TestContext.DataRow["nazwa_kolumny"].ToString());

	Assert.AreEqual( , );
}

//UWAGA!!!
//Przed wykonaniem testu testu należy dołączyć referencję do projektu (programu), który zawiera testowane metody.
//Aby IDE wykorzystało plik .xml, należy do rozwiązania dodać właściwości testu (Nowy element: Test Settings), a w nich zaznaczyć plik .xml (Deployment, Enable deployment)
//using Microsoft.VisualStudio.TestTools.UnitTesting;

//Inicjalizacja niezbędnych elementów stosowanych w każdym z testów. 
[TestInitialize]
public void TestInitialize()
{
	//...
}

//Test
[TestMethod]
public void NazwaTestu()
{
	//AAA = arrange: przygotowanie elementów
	//act: uruchomienie metody
	//assert: ocena wynków
	Assert.AreEqual( , );
}

//UWAGA!!!
//Przed wykonaniem testu testu należy dołączyć referencję do projektu (programu), który zawiera testowane metody.
//using Microsoft.VisualStudio.TestTools.UnitTesting;

private NazwaProgramuViewModel nazwaProgramu;

[TestInitialize]
public void TestInitialize()
{
    this.nazwaProgramu = new NazwaProgramuViewModel();
}

[TestMethod]
public void NazwaTestu()
{
    nazwaProgramu.nazwaCommand.Execute( );
    nazwaProgramu.nazwaCommand.Execute( );
    //...

    Assert.AreEqual( , );
}

以上是关于csharp 单元测试的主要内容,如果未能解决你的问题,请参考以下文章

csharp 单元测试MVC JsonResult对象

csharp UnitTest单元测试

csharp Asp.Net单元测试

csharp 单元测试

csharp 虚假实现Entity Framework的DbSet以进行快速单元测试

csharp [DataTable]通过每个单元格迭代