2010-08-13 5 views
0

IDisposable.Dispose() - 메서드의 결과를 테스트하는 좋은 방법이 있습니까?Dispose() 결과에 대한 단위 테스트 작성 방법

답장을 보내 주셔서 감사합니다.

+0

Dispose 메서드 내부에서 무엇을하려고하는지에 따라 달라집니다. Dispose 메서드에서 필요한 것을 좀 더 설명 할 수 있습니까? – mpenrow

+0

테스트하려고하는 것은 정확히 무엇입니까? –

+0

IConnection, ISession 및 정리 (IDictionary)와 같은 일부 리소스를 호스팅하는 클래스가 있습니다.이 클래스는 정리/닫아야합니다. – MacX

답변

0

.Dispose() 메서드를 호출 한 후에 모든 함수 및 속성 getters/setters가 ObjectDisposedException을 반환하는지 확인하십시오.

http://msdn.microsoft.com/en-us/library/system.objectdisposedexception.aspx

+1

Blech. 'ObjectDisposedException'은 끔찍한 코드 패턴입니다. –

+0

그러면 다른 아이디어가 있습니까? – MacX

+0

솔직히 말해서 실제로 공개해야하는 리소스를 감쌀 때'IDisposable'을 사용하지 않았습니다. 필자는 객체를 사용할 때 이벤트를 트리거하기 위해'using '블록을 이용하는 데에만 사용했습니다. 또한, 무언가가 끔찍한 코드 패턴이라는 것을 말하지 말고, 이유가 무엇인지에 대한 이유나 링크를 제공하십시오. –

2

단위 테스트에 Dispose 방법은, 연결, 세션 및 캐시의 당신의 조롱 버전을 확인 후 Dispose를 호출합니다. 올바르게 닫혔는지 확인하십시오.