안녕하세요.
질문 하신 부분에 대한 추가 코드로 다음 코드의 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()과 같이 "클래스.메소드" 형태로만 출력해도 아무런 문제가 안생깁니다. 그 이유를 알수 있을까요?