2012-05-08 2 views
3

POP3 조작과 관련된 새로운 코드를 작성 중입니다. 나는 테스트를 작성할 수있는 디자인을 제시하려고 노력하고 있으므로, 필자가 작성한 새로운 코드의 대부분을 실제로 해독하고 연습한다.델파이에서 제 3 자 전자 메일 구성 요소를 테스트하는 방법은 무엇입니까?

제가 직면 한 문제는 이메일에 제 3 자 구성 요소를 사용하는 방식이 올바른지 확인해야한다는 것입니다. 여기에는 결함이있는 POP3 서버의 이상한 응답을 테스트하는 작업이 포함됩니다.

현재 모의 POP3 클라이언트를 사용하고 있으므로 클라이언트가 오류 또는 이상한 응답을받을 수있는 가능한 시나리오를 논리적으로 테스트 할 수 있습니다. 그러나 제 3 자 구성 요소를 업그레이드 한 후에도 이러한 가정이 사실인지 확인해야합니다.

또한 SMTP가 있습니다. 자바 세계에서 당신은 Dumbster을 가지고 있음을 압니다.

Delphi의 대안은 무엇입니까? usualsuspects을 사용하여 나만의 맞춤 미니 서버를 만드시겠습니까?

+0

AH 예, 중복이 아니지만 기본적으로 SMTP 또는 POP3를 가져 와서 HTTP를 삽입하십시오. http://stackoverflow.com/questions/9463011/http-server-for-unit-tests-in- 델파이 –

+0

@WarrenP - 별개의 실행 파일을 갖는 것은 신성한 책 O 단위 테스트 또는 무언가에 따라 무서운 신성 모독의 어떤 형태라고 생각합니다. 그리고 당신이 제공 한 링크에서 허용되는 대답은 '인디를 사용하여 서버를 직접 작성하십시오.'입니다. 나는 이미 누군가 그것을 해주기를 바랬다. –

+0

@WarrenP - 예, 알았습니다. 비명을지를 필요가 없습니다. –

답변

2

그럼 난 당신이 의심 무엇인지 확인하는 사람이 될 싫지만 :

(a) 귀하가 (모두의 요구 사항이 다른없고, 적어도 델파이에는 거기에 자신을 구축해야 할거야 Java Dumpster와 동등한 통합 테스트를위한 표준 비품) 및

(b) ICS와 Synapse는 훌륭하고 자신의 데모를 사용하면 원하는 결과를 얻을 수 있으므로 Indy를 맡아야한다고 생각하지 않습니다. 당신은 더 빨리 원합니다 ... 나는 ICS와 함께 갈 것입니다. 그러나 당신이 Indy를 더 잘 안다면, 그걸로 가십시오.

(c) Linux를 실행하는 가상 머신을 계속 사용하는 경향이 있습니다. 왜냐하면 저는 실제 ISP 환경에서 실제로 사용되는 일종의 POP3/SMTP 서버로 테스트하기가 쉽기 때문입니다. MSDN 라이선스가 있다면 Windows + Exchange 서버용 VM을 만들 수 있습니다.

더 이상 단위 테스트가 아닙니다. 이것은 통합 테스트입니다. 프로세스가 아닌 스레드로 모두 밀어 넣을지라도 단위 테스트는 없습니다. 통합 테스트입니다.

모든 개발자가 설정없이 테스트 할 수있게하려면 언제든지 사용할 수 있고 다양한 표준 포트에서 다양한 구성을 갖춘 QA-TEST-NETWORK BOX를 만들어야 모든 개발자에서 통합 테스트를 실행할 수 있습니다 LAN 내부에 제로 설정이 가능한 PC 워크 스테이션. LAN 외부에서는 WAN 환경에서 이것은 털이 많아집니다.

+0

그래, 이걸 많이 의심 했어. 나는 Synapse를 좋아하지만 POP3 또는 SMTP 서버를위한 클래스는 없다고 생각합니다. 절대로 ICS를 사용하지 않았습니다. 또한 다른 주석에서 설명했듯이 외부 종속성을 원하지 않습니다. 가능한 경우 마찰을 피하고 싶습니다. –

+1

업데이트 : Indy를 사용하여 POP3 모의 서버를 만들었습니다. 초기화하는 동안 서버를 시작한 다음 클라이언트가 localhost에 연결하면 테스트가 시작됩니다. 그것은 훌륭하게 작동합니다 (나는 심지어 내 pop3 라이브러리에서 몇 가지 버그를 잡아 내 제공자에게보고하고 즉시 해결했습니다!) –