Benutzer:MovGP0/Unit Testing

  MovGP0    Über mich    Hilfen    Artikel    Weblinks    Literatur    Zitate    Notizen    Programmierung    MSCert    Physik   


Unit Testing

Struktur

MS Test[1][2]NUnit[3]
[TestClass]public class MyTestClass{   [TestMethod]   public void MyTest()   {      Arrange();      Act();      Assert();   }}
[TestFixture]public class MyTestClass{   [Test]   public void MyTest()   {      Arrange();      Act();      Assert();   }}

Vergleich von Listen

MS TestNUnit
CollectionAssert.Equals(expectedList, actualList);
CollectionAssert.AreEquivalent(expectedList, actualList);

Mocking

Moq
[Test]public void Something(){   var myObjectFake = new Mock<MyObject>()      .Setup(x => x.MyMethod())      .Returns("Hello")      .Verify(x => x.MyMethod(), Times.Once());   var myObject = myObjectFake.Object;}
AutoMoq
  • reduces code duplication
private AutoMoqer mocker;[SetUp]public void Setup(){   mocker = new AutoMoqer(); // init a new instance on each test run}[Test]public void Something(){   mocker.GetMock<MyObject>()      .Setup(x => x.MyMethod())      .Returns("Hello")      .Verify(x => x.MyMethod(), Times.Once());   var myObjectFake = mocker.Resolve<MyObject>();}


SpecFlow

Private Member Antipattern

CorrectFalse
[Binding]public class HomeControllerSteps{   [When(@"I visit the homepage.")]   public void WhenIVisitTheHomepage()   {      var controller = new HomeController();      var viewResult = controller.Index();      ScenarioContext.Current.Set(viewResult);      // ScenarioContext.Current.Set["viewResult"] = viewResult;      // ScenarioContext.Current.Set(viewResult, "viewResult");   }}
[Binding]public class HomeControllerSteps{   private ViewResult _viewResult;   [When(@"I visit the homepage.")]   public void WhenIVisitTheHomepage()   {      var controller = new HomeController();      _viewResult = controller.Index();   }}

AutoTest

SettingValue
TitleAutoTest
CommandC:\Programme\AutoTest\AutoTest.Console.exe
Arguments$(SolutionDir)

Referenzen