kod do testów jednostkowych

0

Witam,
mam za zadanie napisanie kodu do testów jednostkowych
wklejam fragment testów:

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using CodeKata;

namespace CodeKata.Tests
{
    [TestClass]
    public class GaderypolukiTests
    {
        [TestMethod]
        public void TestMethod1()
        {
            var key = "GADERYPOLUKI";
            var encodedText = "thd nlmbdy pf ydougcdmdnts sgvd kn thd gyygr kn thd knedx cpyydsopnekna tp thd sruugbud. thd knedxds mlst bd kn thd guohgbdtkcgu pyedy pf thd sruugbuds pf thd dncpekna idr, d.a. fpy thd idr 'odig' thd fkyst knedx wplue cpyydsopne tp 'ig' gne thd sdcpne knedx tp 'od' sruugbud.";
            var expectedText = "the number of replacements save in the array in the index corresponding to the syllable. the indexes must be in the alphabetical order of the syllables of the encoding key, e.g. for the key 'peka' the first index would correspond to 'ka' and the second index to 'pe' syllable.";
            Tuple<string, int[]> actual = Gaderypoluki.Encode(key, encodedText);

            Assert.AreEqual(expectedText.ToLower(), actual.Item1.ToLower());
        }

        [TestMethod]
        [ExpectedException(typeof(ArgumentException))]
        public void TestMethod2()

Prosiłabym o podpowiedzi oraz wyjaśnienie, o co chodzi, jak się za to zabrać.

pozdrawiam

1

Krótko:

  • Klikasz w Solution Explorer prawym przyciskiem myszy na Solution -> Add -> New Project;
  • Wybierasz Visual C# -> Test -> Unit Test Project;
  • Nazywasz go jakoś;
  • Wchodzisz w Solution Explorer na Nazwa Twojego projektu z testami -> References i klikasz prawym na References i robisz Add Reference;
  • Z drzewa wybierasz Projects -> Solution i wybierasz projekt Gaderypoluki, którego referencje chcesz dodać do testów. Bez tego testy nie będą widzieć publicznych klas i metod do przetestowania;
  • W testach dopisujesz using przestrzeń nazw Twojego projektu albo klasy, którą chcesz testować;;
  • I w TestMethod piszesz testy np:

(Ad. 1)

	public void TestMethod1() {
            var key = "gaderypoluki";
            var plain = "hello world";
            var expected = "hduup wpyue";

            Assert.AreEqual(expected, Gaderypoluki.Encrypt(plain, key));
        }

O co tutaj chodzi?
Po prostu w asercji testujesz metodę, która ma zwrócić oczekiwaną przez Ciebie wartość. Jeżeli jej nie zwróci to test się nie powiedzie. W tym wypadku metoda Encrypt ma zwrócić konkretny zaszyfrowany tekst. Jeżeli będzie inny to unittest nie przejdzie.

  • Teraz z menu wybierasz Test -> Run -> All tests... i czekasz na raport od IDE :)

Ot i wszytko :)

(Ad. 1): skąd wziąć program to przetestowania? Od kolegi z roku http://4programmers.net/Forum/Newbie/266919-zmiana_pojedynczych_znakow_w_ciagu_-_szyfr :D

0

dziękuję bardzo za pomoc ;)
a dla takiego przypadku jak napisać program do przetestowania?jakieś podpowiedzi??

<code class="csharp">[TestMethod]
        public void TestMethod5()
        {
            var key = "GADERYPOLUKI";
            var encodedText = "thd nlmbdy pf ydougcdmdnts sgvd kn thd gyygr kn thd knedx cpyydsopnekna tp thd sruugbud. thd knedxds mlst bd kn thd guohgbdtkcgu pyedy pf thd sruugbuds pf thd dncpekna idr, d.a. fpy thd idr 'odig' thd fkyst knedx wplue cpyydsopne tp 'ig' gne thd sdcpne knedx tp 'od' sruugbud.";
            Tuple<string, int[]> actual = Gaderypoluki.Encode(key, encodedText);

            Assert.AreEqual(47, actual.Item2[0]);
            Assert.AreEqual(16, actual.Item2[1]);
            Assert.AreEqual(15, actual.Item2[2]);
            Assert.AreEqual(16, actual.Item2[3]);
            Assert.AreEqual(21, actual.Item2[4]);
            Assert.AreEqual(18, actual.Item2[5]);
        }

```csharp
 
0

pomoże ktoś? help me!

1 użytkowników online, w tym zalogowanych: 0, gości: 1