Вы применяете неверный тип в тесте.
В тестируемой системе вы возвращаете
return Ok(_deliveryCode);
, где _deliveryCode
-
IDeliveryCode _deliveryCode;
таким образом, тип возвращаемого значения будет
OkNegotiatedContentResult<IDeliveryCode> //Interface
В тесте вы пытаетесь привести его к
OkNegotiatedContentResult<DeliveryCodeValue> //Concrete implementation
, что приведет к
var contentResult = actionResult as OkNegotiatedContentResult<DeliveryCodeValue>;
является нулем
Измените код на
var contentResult = actionResult as OkNegotiatedContentResult<IDeliveryCode>;
и он должен вести себя как положено.
Наконец, GenerateFromExistingCode.GetDeliveryCode
возвращает "XYZ456"
, но утверждение проверяется на "XYC456"
Assert.AreEqual("XYC456", contentResult.Content.Code);
Убедитесь, что это действительно желаемое утверждение.