Для моего приложения .NET C # я использую стороннее программное обеспечение для электронной почты с именем efaxdeveloper.com
Мне нужно было издеваться над объектом OutfResponse программного обеспечения efaxdeveloper.com.
Пожалуйста, имейте в виду, что, поскольку это сторонняя программа, я, очевидно, не могу изменять сторонние библиотеки.
В файле eFaxDeveloper.dll приведен код класса OutboundResponse:
using System.Runtime.InteropServices;
namespace J2.eFaxDeveloper.Outbound
{
//
// Summary:
// oubound response
[ClassInterface(ClassInterfaceType.AutoDual)]
[System.Runtime.Serialization.DataContractAttribute(Namespace = "")]
public class OutboundResponse
{
public OutboundResponse();
//
// Summary:
// Unique client specified transmission identifier
public string TransmissionID { get; }
//
// Summary:
// eFax Developer™ transmission identifier
public string DOCID { get; }
//
// Summary:
// J2.eFaxDeveloper.Outbound.StatusCode
public StatusCode StatusCode { get; }
//
// Summary:
// Status description
public string StatusDescription { get; }
//
// Summary:
// J2.eFaxDeveloper.Outbound.ErrorLevel
public ErrorLevel ErrorLevel { get; }
//
// Summary:
// Error message
public string ErrorMessage { get; }
}
}
Так как он имеет только геттеры, я попробовал следующий фрагмент кода:
OutboundResponse outboundResponseInQuestion = Substitute.For<OutboundResponse>();
outboundResponseInQuestion.TransmissionID.Returns("someTransmissionID");
К сожалению, выбрасывает outboundResponseInQuestion.TransmissionID
'outboundResponseInQuestion.TransmissionID' вызвал исключение типа 'System.NullReferenceException'
Я не могу создать интерфейс для класса OutboundResponse, поэтому, может, кто-нибудь подскажет, как я могу смоделировать указанный объект с помощью NSubstitute и заставить его возвращать правильные значения?