1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3.  
  4. namespace testDemoTDD
  5. {
  6.     [TestClass]
  7.     public class testBruch
  8.     {
  9.         Bruch b;
  10.  
  11.         [TestInitialize()]
  12.         public void Initialize()
  13.         {
  14.             b = new Bruch(2, 4);
  15.         }
  16.  
  17.         [TestMethod]
  18.         public void testQuotient1()
  19.         {
  20.             Assert.AreEqual(0.5, b.quotient());
  21.         }
  22.         [TestMethod]
  23.         [ExpectedException(typeof(DivideByZeroException))]
  24.         public void testQuotient2()
  25.         {
  26.             Bruch b1 = new Bruch(1, 0);
  27.             b1.quotient();
  28.         }
  29.         [TestMethod]
  30.         public void testKuerzen()  // Testmethode mit 3 Testfaellen
  31.         {
  32.             b.kuerzen();
  33.             Assert.AreEqual(1, b.Zaehler);
  34.             Assert.AreEqual(2, b.Nenner);
  35.  
  36.             Bruch b1 = new Bruch(18, 9);
  37.             b1.kuerzen();
  38.             Assert.AreEqual(2, b1.Zaehler);
  39.             Assert.AreEqual(1, b1.Nenner);
  40.  
  41.             Bruch b2 = new Bruch(3, -9);
  42.             b2.kuerzen();
  43.             Assert.AreEqual(1, b2.Zaehler);
  44.             Assert.AreEqual(-3, b2.Nenner);
  45.         }
  46.     }
  47. }

Listing 1: testBruch.cs mit den Unittests


  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace testDemoTDD
  7. {
  8.     public class Bruch
  9.     {
  10.         public double Zaehler { get; set; }
  11.         public double Nenner { get; set; }
  12.  
  13.         public Bruch(double z, double n)
  14.         {
  15.             Zaehler = z;
  16.             Nenner = n;
  17.         }
  18.         public double quotient()
  19.         {
  20.             if (Nenner == 0)
  21.                 throw new DivideByZeroException();
  22.             return Zaehler / Nenner;
  23.         }
  24.         public void kuerzen()
  25.         {
  26.             // http://www.linux-related.de/index.html?/coding/alg_euklid.htm
  27.             double u = Math.Abs(Zaehler), v =  Math.Abs(Nenner), tmp;
  28.             while (u > 0)
  29.             {
  30.                 tmp = u;
  31.                 u = v % u;
  32.                 v = tmp;
  33.             }
  34.             Zaehler /= v;
  35.             Nenner /= v;
  36.         }
  37.     }
  38. }
Listing 2: Klasse Bruch mit der Methode kuerzen()

Last modified: Thursday, 23 August 2018, 8:24 PM