2014-06-25 4 views
1

멀티 스레드 코드에 대한 테스트 작성 방법에 관한 많은 질문을 발견했습니다. 어쨌든 그들은 너무 추상적이어서 대부분 실제 테스트의 예가 있습니다. 나는 더 좁은 질문을 생각해 냈다.세마포어에 대한 단위 테스트를 작성 하시겠습니까?

어떻게 C#에서 세마포어에 대한 좋은 테스트를 작성 하시겠습니까? SemaphoreSlim 구현을위한 테스트를 가정 해 봅시다. 구현 세부 사항 전부가 아니라 본질 논리를 다루어야합니다.

답변

2

차단 작업을 테스트하는 것은 항상 매우 어렵습니다. 일반적으로 잠금/세마포는 기능적으로 테스트됩니다. 즉, 호출 차단을 시도하고 확인하기 위해 복잡한 단위 테스트를 만들지 말고 코드를 중단하려는 테스트를 만드는 것이 좋습니다 ... 세마포는 일반적으로 코드가 작동하더라도 코드가 작동하는 경우 스로틀 링하는 데 사용됩니다. 매우 무거운 배터리로, 나는 그것을 좋다고 생각한다. 세마포어는 작성한 코드가 아닙니다 (.NET 제공 클래스를 사용한다고 가정 할 때). 따라서 해당 기능을 테스트 할 필요가 없습니다.

+1

예를 들어 SemaphoreSlim이 제공되었습니다. 물론 .NET Framework 클래스에 대한 테스트를 작성하고 싶지는 않습니다. 실제 예제는이 클래스의 예제를 작성하는 것입니다 : http://blog.cincura.net/233445-async-semaphore-with-priority/ – alexey

관련 문제