2014-12-24 2 views
0

TDD에서는 람다가 해롭지 않습니까? 다른 함수 내에서 캡슐화 된 람다의 기능을 테스트하려면 어떻게해야합니까? 그것은 당신이 그 λ를 시험 할 수 없을 것 같아서 이 예상대로 작동했는지 확인하는 것입니다. 단위 테스트의 요점은 작은 단위의 코드를 테스트하는 것입니다. 람다 (Lambdas)는 나에게 보이지 않는 코드의 작은 단위이다.TDD에서 람다를 사용해야합니까?

도움, 의견, 설명 또는 링크를 제공해 주시면 감사하겠습니다.

+2

람다가 "테스트 할 수없는"이유는 무엇입니까? 'IEnumerable .Where (x => blah)'로 전달 된 조건자를 검사하기위한 테스트를 작성하려는 경우 다른 테스트 케이스/매개 변수로 해당 코드를 사용하는 실제 메소드를 테스트해야합니다 . – TyCobb

+0

@TyCobb 그건 정확히 내 질문이다. 그리고 모두가 말하는 바에서 캡슐화 기능을 테스트하는 것이 적절하다고 여겨집니다. – sparkyShorts

답변

5

단위 테스트의 요점은 작은 코드 단위를 테스트하는 것입니다. 당신이 코드의 모든 작은 단위에 대한 단위 테스트를 작성하는 가고픈 충동이 들게한다는 것을 의미하지 않는다

. 개인용 메소드는 작은 코드 단위 일 수 있지만 직접 테스트하지는 마십시오. 호출하는 코드를 테스트하여 테스트합니다. 람다도 마찬가지입니다.

2

나는 개인적으로 람다를 호출하는 것이 아니라 람다를 호출하는 코드를 테스트 할 것이다. 당신은 람다 자체를 테스트하고 싶다면 람다를 공개적으로 노출시키고 테스트 할 수 있습니다.

2

네, 코드를 테스트하고 싶다면 람다를 사용해야합니다.

람다 오작동은 부모 테스트가 제대로 작동하지 않는 한 잘못 작동하게됩니다.

마지막으로 일부 람다는 실제로 추출하는 것이 좋습니다. 주위에 람다를 산란하기 전에 생각하고, 그들이 이해할 수있는 곳에서만 사용하고 코드의 이해력을 향상시킵니다. 만약 람다의 부모가 잘못하면, 람다 내부의 문제를 정확히 찾아내는 것이 쉽습니다.