좋아, 지금 화나지 마라. 나는이 주제에 대해 몇 가지 질문이 있지만 여전히 의문점이 있음을 알고있다.개인 변수 값에 대한 테스트
개인 함수를 테스트하지 않는 것에 대해서는 완전히 동의한다고 생각합니다. 합리적이라고 생각하지만 private 변수를 설정하는 공용 메서드를 테스트하려면 어떻게해야합니까?
생성자가 일부 개인 변수를 설정하고 해당 변수가 생성자가 호출 된 후 올바르게 설정되었는지 테스트하려고한다고 가정 해 보겠습니다. 유효한 시험입니까? 공개 getter를 추가하지 않고 private 변수의 값을 어떻게 확인해야합니까?
나는 명확하게하려고하는하지 실제 시나리오 예제를 추가public class ClassToTest
{
private bool _isOn;
public void SwitchOn() { _isOn = true; }
public void SwitchOff(){ _isOn = false; }
public void update()
{
if (_isOn)
DoSomething();
}
private void DoSomething()
{
//this could also execute a function of an external dependency. But still the dependency could not have a public function to test if the behavior actually ran.
}
}
는 어떻게 스위치 온과 스위치 오프 작업이 제대로 나는 _isOn 값에 대해 테스트 할 수없는 경우 있는지 테스트 할 수 있습니까? (예를 들어 공용 getter를 작성하지 않고 함수가 값을 반환하지 않는다는 것을 의미합니다.)
값을 확인해야합니까? 그들이 다른 방법으로 사용되는 방식으로 그들의 가치를 확신 할 수 없습니까? – luketorjussen
문제는 다른 곳에서 가장 많이 드러납니다. 클래스의 전용 부분은 테스트하지 말아야합니다. 이는 고객과 관련이없는 구현 세부 사항이기 때문입니다. 문제를 나타내는 컨텍스트/코드 샘플을 더 제공 할 수 있습니까? 그렇지 않으면 너무 일반적인 답변을 얻을 수 있습니다. –
done .... – sebas