Q & A

시삽: 레드플러스 님 
게시판 이동:
 제목 : Re : [C#교과서] p702 에서 메서드 호출 질문 있습니다.
글번호: 1009
작성자: 레드플러스
작성일: 2022/01/03 오후 10:38:00
조회수: 1963
파일: namespace-simplified.png (194 KB) / 전송수: 1009
namespace-simplified.png

안녕하세요.

 

질문 하신 부분에 대한 추가 코드로 다음 코드의 CreatorOther 클래스를 예를 들 수 있습니다.

 

Dul.CreatorOther 클래스를

Dul.Tests.CreatorTestOther 클래스에서 바라볼 때에는

같은 Dul 네임스페이스를 보고 있기에

 

Dul.CreatorOther 클래스 또는 그냥 CreatorOther 클래스로 호출해도 됩니다.

 

파일 또는 프로젝트가 분리되어 있지만,

네임스페이스는 Dul과 Dul.Tests에서 Dul은 같은 네임스페이스 공간에 있다고 보시면 됩니다.

 

만약, 테스트 코드 내에서 Dul.Creator.GetName()과 같이 호출하면

Visual Studio는 알아서 Dul을 줄여서 써라고 가이드를 해줍니다.

Dul.Creator.GetName()의 Dul 부분에 캐럿을 두고 Ctrl+. 입력해보면 관련 안내가 나옵니다.

그래서, Dul.Creator.GetName()을 써도 되지만, 줄여써서 Creator.GetName()을 쓰면 되는 것입니다.

 

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Dul.Tests
{
    [TestClass]
    public class CreatorTest
    {
        [TestMethod]
        public void GetNameTest()
        {
            //[1] Arrange(정렬), Setup
            const string expected = "RedPlus";

            //[2] Act(동작), Execute
            var actual = Creator.GetName();

            //[3] Assert(어설션), Verify
            Assert.AreEqual(expected, actual);
        }
    }
}

namespace Dul
{
    class CreatorOther
    {
        public static string GetName() => "RedPlus";
    }
    namespace Tests
    {
        [TestClass]
        public class CreatorTestOther
        {
            [TestMethod]
            public void GetNameTest()
            {
                //[1] Arrange(정렬), Setup
                const string expected = "RedPlus";

                //[2] Act(동작), Execute
                var actual = CreatorOther.GetName();

                //[3] Assert(어설션), Verify
                Assert.AreEqual(expected, actual);
            }
        }
    }
}

 

 

감사합니다.

 

 

 

 


On 2022-01-03 오후 10:09:00, '유지훈' wrote:

 

 


p702,703에서 보면 MSTest 프로젝트인 Dul.Tests 프로젝트에 01_Creator폴더 아래 CreatorTest.cs 파일에서는 Dul 프로젝트의 01_Creator 폴더 아래 Creator.cs에서 구현한 메소드를 테스트 합니다.

그런데 Creator 클래스는 namespace Dul 안에 존재하는데, CreatorTest.cs에서 TestMethod인 GetNameTest()는 namespace Dul.Tests에 존재합니다. 이렇게 namespace가 다를 때에는 다른 네임스페이스에 존재하는 메소드를 호출할 때 "네임스페이스.클래스.메소드" 형태로 호출해야 한다고 알고있는데, 702페이지에서는 Creator.GetName()과 같이 "클래스.메소드" 형태로만 출력해도 아무런 문제가 안생깁니다. 그 이유를 알수 있을까요?

 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트
  jihun
  2022-01-03 오후 2:37:30
설명 감사드립니다. 이제 이해하였습니다^^

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 [C#교과서] p729. 오탈자 확인 부탁드립니다. - 유지훈 2022-01-04 2094
  [C#교과서] p702 에서 메서드 호출 질문 있습니다. - 유지훈 2022-01-03 2255
현재글 Re : [C#교과서] p702 에서 메서드 호출 질문 있습니다.(1) namespace-simplified.png(194 KB) 레드플러스 2022-01-03 1963
다음글 [C#교과서] p659. 오탈자 확인 및 질문드립니다. - 유지훈 2021-12-31 2861
 
손님 사용자 Anonymous (손님)
로그인 Home