2013-01-16 2 views
2

저는 C# 용 libspotify 래퍼를 개발 중입니다. 단위 테스트를 작성하는 중입니다. 따라서 반복적으로 세션을 만들고, 로그인하고, 작업을 수행하고, 로그 아웃하고, 세션을 릴리스하고 정리하여 다음 테스트를 준비해야합니다.Libspotify 파기 절차

libspotify의 올바른 '종료'절차가 무엇인지 확신 할 수 없습니다. 'jukebox'예제는 아무런 종료도 수행하지 않습니다. 주 함수는 sp_session_release를 호출하지 않고 종료됩니다.

예를 들어 출시하기 전에 모든 콜백을 해제해야합니까? 지금은 sp_session_release를 호출하려고 할 때마다 충돌이 발생합니다.

건배 순간 톰

+1

관심이 있으시면 지난 몇 주 동안 C# libspotify 래퍼 작성과 동일한 작업을 해왔습니다. 어쩌면 그 중 일부는 유용할까요? 한번보세요 : https://github.com/openhome/ohLibSpotify 아직 한 번의 프로세스에서 세션을 반복해서 생성하려고 시도하지 않은 것 같습니다. – Weeble

답변

4

(그리고 아주 나쁜 형태의), libspotify 전용 "프로세스 당 sp_session의 한 인스턴스"를 지원하고, 당신이 보는대로 발표 할 때 신뢰할 수 있습니다. 이론적으로, 로그 아웃 한 후 세션을 해제하면 (그리고 로그 아웃 콜백을 기다리는 것이 좋습니다), 우리가 볼 수있는 것처럼 몇 가지 신뢰성 문제가 있습니다.

우리 자신의 내부 libspotify 단위 테스트는 우리가

CocoaLibSpotify의 단위 테스트 libspotify (12)를 위해이 문제를 놓친 이유가 정말 있는지 상태를 재설정하기 위해 각 테스트하는 방법을 만들어 실행 한 프로세스에서 모든 테스트, 그들 사이에서 로그 아웃하지 마십시오.

+0

정보를 제공해 주셔서 감사합니다. –

+0

이것은 계속 나를 어렵게 만듭니다. 나는 NUnit을 사용하고 있으며, 각 로깅은 각 테스트 실행이 새로운 프로세스를 생성 할 것을 제안합니다. 그러나 성공적인 테스트 실행 후에는 새로운 세션을 만들려고 할 때 예외가 발생하면서 이후의 테스트 실행이 항상 실패합니다. 이것은 실제 응용 프로그램을 실행할 때 결코 발생하지 않으므로 아마도 Nunit과 관련된 몇 가지 문제를 제시합니다. 세션을 안정적으로 닫고 만들 수있는 한 세션 당 하나의 인스턴스가 괜찮습니다. –