2
위조/가짜 객체의 도움을 받아 단위 테스트를 할 때, 테스트 클래스에 동일한 클래스를 테스트하는 메소드가 포함되어 있으면 SetUp 또는 테스트 메소드 자체의 모의 객체를 초기화하는 것이 더 바람직한지 궁금하다. (따라서 가짜 객체가 필요하다. 모든 테스트 케이스에서 동일해야 함). 이런 식으로 뭔가가 :설치 또는 테스트 케이스에서 mock 객체를 초기화해야합니까?
class FooTests
{
Mock<IBar> mockBar;
Foo fooUnderTest;
[SetUp]
public void Setup()
{
mockBar = new Mock<IBar>();
fooUnderTest = new fooUnderTest(mockBar.Object);
}
[Test]
public void MyTest()
{
//setup mock methods
mockBar.SetUp(...)
//test
fooUnderTest.TestSomething()
//assert something here
}
}
각 테스트 케이스에 mockBar 및 fooUnderTest에 코드를 복제에서 우리를 방지 할 것 같다,하지만 단점은 내가 클래스 변수 mockBar 및 fooUnderTest을 (선언해야한다는 것입니다 또는이 정말입니다 단점이 있습니까?) 몇 가지 특별한 설치가 필요하다면 문제가 될 것입니다 (예를 들어, 일부 테스트 케이스에서 Foo의 가상 메소드 중 일부를 너무 많이 사용하려는 경우). 가장 좋은 방법은 무엇입니까?
아주 좋은 그리고 현명한 지침, 고마워. 내 모범을위한 어떤 제안? –
@ LouisRhys - 'Foo의 가상 메소드 중 일부를 무시하고 싶다'는 말을 정교하게 해석 할 수 있습니까? 테스트를 위해 Foo의 다른 하위 클래스를 원한다는 것을 의미합니까? 그렇다면 설정이 다르며 글 머리 기호 # 3이 적용됩니다. – Gishu