테스트에 문제가 있습니다. 어떤 이유로, 내가 알아 내지 못했지만, 객체의 공개 속성에 액세스 할 수 없습니다. 내가 SMTPConnection을 시뮬레이션하고 전자 메일 메시지를 보내려면이 사용하고NUnit 테스트의 속성에서 MissingMethodException이 발생했습니다.
public class FakeSMTPConnector : ISMTPConnector
{
private bool _MailSent = false;
public bool MailSent
{
get { return _MailSent; }
set { _MailSent = value; }
}
private MailMessage _Message = null;
public MailMessage Message
{
get { return _Message; }
set { _Message = value; }
}
public FakeSMTPConnector()
{
}
public void SendMail(MailMessage mail)
{
_MailSent = true;
_Message = mail;
}
}
:
내 클래스는 다음과 같다. 전자 메일 메시지를 처리하는 클래스는이 SMTP 커넥터를 사용하여 배달을 위조합니다. 다음과 같이
내 시험은 다음과 같습니다
[Test]
public void EnviarMensagemContactoSentTest()
{
//arrange
FakeSMTPConnector connector = new FakeSMTPConnector();
EmailManager manager = new EmailManager(connector);
//act
manager.SendMessage("[email protected]", "abc", "def", "ghi");
//assert
Assert.IsNotNull(manager, "Manager instance not created");
Assert.IsTrue(connector.MailSent, "Message not sent");
Assert.IsNotNull(connector.Message);
}
NUNIT가 메시지 속성을 acesses 마지막 어설, 시도 할 때, 훨씬 이해가되지 않습니다 예외와 함께 실패
:
System.MissingMethodException : Method not found: 'System.Net.Mail.MailMessage Project.FakeSMTPConnector.get_Message()'.
을 내가 뭐 잘못하고 있니? 나는 테스트를 추가하고 프로젝트에 리팩토링을하기 시작했습니다. 많은 부분이 너무 새로워서 제 머리 속에서 뭔가 근본적인 것으로 혼란 스럽습니다.
고마워요!
깨끗한 빌드를 사용해 보셨습니까? –
네임 스페이스와 EmailManager 클래스 및 스택 추적을 추가 할 수 있습니까? – eyossi
@ DanielA.White와 (과) 일치하면 전체 재구성 작업을 수행 할 수 있습니다. 또한 NUnit 테스트 러너를 실행 중입니까? 그렇다면 빌드 한 후에 테스트를 다시로드하는지 확인 했습니까? –