2010-12-29 4 views
2

단위 테스트에서 여러 번, 우리는 가치가 중요하지 않은 방법으로 변수를 정의해야하는 문제에 직면합니다. 때로는 문자열을 전달해야하고 결과가 동일한 문자열인지 확인해야합니다. 또는 어쩌면 같은 문자열이지만 대문자로 표시 될 수도 있습니다. 또는 그 문자열을 얻는 대신 우리가 테스트하는 메서드는 빈 문자열을 반환합니다.단위 테스트에서 변수 명명/할당은 어떻게 처리합니까?

이러한 경우 변수를 선언하고 이름을 지정하고 할당하는 방법은 무엇입니까? 입력과 같은 URL이 소요 HTML 파서의 예를 들어 상황, 고려

:

string google = "http://google.com" 

내가 변수가 무엇의 약자인지 말하고,하지만 내가 왜 특별히 사용하고 있지를 (즉, 왜 yahoo를 사용하지 않는 것입니까?), 테스트 컨텍스트에서.

string someUrl = "http://google.com"; 

여기서 "일부 URL"이라고 말하면서 테스트 목적으로는 중요하지 않을 수 있습니다. 그러나 나는 몇 가지 URL을 선택해야했습니다.

string someUrl = SomeUrl(); // in this method I just return "http://google.com" 

는 여기에 URL이 중요하지 않다는 것을 주장하고 있는데 아마 중요하지 않은 세부 시험의 독자를 산만하게하지 않는 방법으로 변수의 값을 숨 깁니다.

제 생각은 정확합니까? 이 문제에 접근하는 다른 방법이 있습니까?

단위 테스트에서 어떻게 처리합니까?

답변

2

가장 명확한 것을 기준으로 변수의 이름을 지정해야합니다. 단위 테스트는 테스트 스크립트로 생각할 수 있습니다. 핵심 릴리스 코드만큼 효율적이거나 우아 할 필요는 없습니다. 더글러스 애덤스와 존 로이드에 의해 Liff의 깊은 의미 -

데벤 테르 (n)이 때문에 너무 작은 수 있도록하는 것은 매우 어려운 결정은 같은 공원

산책 할 수있는 방법으로,이에 따라 달라집니다 .

1

원하는 이름을 선택할 수 있습니다. 별로 중요하지 않습니다!

따라서 someSomething과 같은 이름은 완전히 정상이며 하드 코드 된 테스트 값도 좋습니다.

내가 따르는 유일한 규칙은 값 자체를 선택하는 것입니다. 자주 개발자가 User 개체의 firstNamelastName이되어야한다고 생각했습니다. 해결책은 단순히 항상 사용하는 작은 기본값 집합을 사용하는 것입니다. 나를 위해, 그것이 관리자 인 사용자라면 분명 Chuck Norris입니다. 이렇게하면 시간을 절약 할 수 있으며 스크립트가보다 일관성있게 유지되지만 선택 사항이더라도 마찬가지입니다. 그러나 URL을 http://www.google.com"으로 선택 했으므로 이미이 작업을 수행하고있는 것처럼 보입니다.

1

메소드에서 하나의 URL 만 사용하는 경우 var url입니다. 더 많이 사용하면 var url1, var url2 또는 var urlGoogle, var urlYahoo 중 하나입니다. 짧고, 여전히 의미가 있으며, 너무 많이 생각하지 마십시오.

2

의도를 전달하는 변수의 이름을 지정하십시오.

  • 변수 값이 중요하지 않은 경우, 나는 그것을 이름 것 ​​또한 anyUrl = ...로는 아마 (인라인 값이 가독성 아파하지 않는 한) 중 하나의 변수
  • 만약을 사용하지 않을 문제가되지 않는 경우 변수 값은 어떤 이유로 특별한 것이고 현재 테스트에 영향을 미친다. 그러면 그 이름을 urlWithHyphens = ...이라고 전한다. 또한 강조하기 위해 SCREAMING_CAPS (예 : VALUE_OVER_THRESHOLD_OF_2_MINS)의 로컬 상수를 도입하려고합니다.

OO와 마찬가지로, 좋은 이름은 가독성 + 유지 관리 용이성의 절반 정도입니다.

관련 문제