C#교과서 마스터하기 41. 테스트 프로젝트와 단위 테스트

min seung moon·2021년 7월 15일
0

C#

목록 보기
43/54

https://www.youtube.com/watch?v=SOZNBmQDnyg&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=76

1. 단위 테스트(Unit Test)

  • 특정 클래스의 메서드에 있는 논리 오류를 빠르게 찾을 수 있도록 도와주는 기능

2. 프로젝트

  • 40. 라이브 클래스 프로젝트 사용

01. Test Project 생성


02. DulAlgorithm 클래스 참조


03. Test Class

using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Text;

namespace DulAlgorithm.Tests
{

    [TestClass]
    class AlgorithmClassTest
    {
        [TestMethod]
        public void SelectionSort_ShouldReturnSortedArray()
        {

        }

        [TestMethod]
        public void SelectionSortMethodTest()
        {

        }
    }
}

04. 새 솔루션 폴더 생성(UI)

  • DulAlgorithm.ConsoleApp & DulAlgorithm.WinFormsApp1을 솔루션 폴더(UI)에 넣기

05. 예시 테스트

  • fail
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace DulAlgorithm.Tests
{
    [TestClass]
    class AlgorithmClassTest
    {
        [TestMethod]
        public void MyTestMethod()
        {
            // Assert.AreEqual(10, 10); // true
             Assert.AreEqual(10, 100); // false
        }
        [TestMethod]
        public void SelectionSort_ShouldReturnSortedArray()
        {
            
        }
    }
}


  • success
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace DulAlgorithm.Tests
{
    [TestClass]
    class AlgorithmClassTest
    {
        [TestMethod]
        public void MyTestMethod()
        {
             Assert.AreEqual(10, 10); // true
            // Assert.AreEqual(10, 100); // false
        }
        [TestMethod]
        public void SelectionSort_ShouldReturnSortedArray()
        {
            
        }
    }
}

06. 정렬 테스트(SelectionSort)

  • fail(1)
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace DulAlgorithm.Tests
{
    [TestClass]
    class AlgorithmClassTest
    {
        [TestMethod]
        public void MyTestMethod()
        {
             Assert.AreEqual(10, 10); // true
            // Assert.AreEqual(10, 100); // false
        }
        [TestMethod]
        public void SelectionSort_ShouldReturnSortedArray()
        {
            // [1] Arrange(정렬), Setup
            int[] arr = { 33, 22, 44 };

            // [2] Act(동작), Execute
            int[] result = DulAlgorithm.Algorithm.SelectionSort(arr);

            // [3] Assert(어설션), Vertify
            Assert.AreEuqal(11, result[0]); // true
        }
    }
}

  • success(1)
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace DulAlgorithm.Tests
{
    [TestClass]
    class AlgorithmClassTest
    {
        [TestMethod]
        public void MyTestMethod()
        {
             Assert.AreEqual(10, 10); // true
            // Assert.AreEqual(10, 100); // false
        }
        [TestMethod]
        public void SelectionSort_ShouldReturnSortedArray()
        {
            // [1] Arrange(정렬), Setup
            int[] arr = { 33, 22, 44 };

            // [2] Act(동작), Execute
            int[] result = DulAlgorithm.Algorithm.SelectionSort(arr);

            // [3] Assert(어설션), Vertify
            Assert.AreEuqal(22, result[0]); // true
        }
    }
}

  • fail(2)
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace DulAlgorithm.Tests
{
    [TestClass]
    class AlgorithmClassTest
    {
        [TestMethod]
        public void MyTestMethod()
        {
             Assert.AreEqual(10, 10); // true
            // Assert.AreEqual(10, 100); // false
        }
        [TestMethod]
        public void SelectionSort_ShouldReturnSortedArray()
        {
            // [1] Arrange(정렬), Setup
            int[] arr = { 33, 22, 44 };

            // [2] Act(동작), Execute
            int[] result = DulAlgorithm.Algorithm.SelectionSort(arr);

            // [3] Assert(어설션), Vertify
            Assert.AreEuqal(22, result[0]); // true
            Assert.AreEqual(33, result[result.Length - 1]);
        }
    }
}

  • success(2)
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace DulAlgorithm.Tests
{
    [TestClass]
    class AlgorithmClassTest
    {
        [TestMethod]
        public void MyTestMethod()
        {
             Assert.AreEqual(10, 10); // true
            // Assert.AreEqual(10, 100); // false
        }
        [TestMethod]
        public void SelectionSort_ShouldReturnSortedArray()
        {
            // [1] Arrange(정렬), Setup
            int[] arr = { 33, 22, 44 };

            // [2] Act(동작), Execute
            int[] result = DulAlgorithm.Algorithm.SelectionSort(arr);

            // [3] Assert(어설션), Vertify
            Assert.AreEuqal(22, result[0]); // true
            Assert.AreEqual(44, result[result.Length - 1]);
        }
    }
}

profile
아직까지는 코린이!

0개의 댓글