public class crumbController: Controller
{
public ActionResult<IEnumerable<Crumb>> GetBreadcrumb([FromRoute]int tag_X_ParentID)
{
try
{
Services.Interface.IBreadcrumbService service = new Services.Imp.BreadcrumbService(_configuration, _logger);
if (service != null)
{
Breadcrumb breadcrumb = service.GetBreadcrumb(ParentID);
return Ok(breadcrumb.crumbs.ToList());
}
else
{
return BadRequest("Unable to establish connection.");
}
}
catch (Exception ex)
{
_logger.LogError(ex.Message, ex);//log error
return BadRequest(ex.Message);
}
}
}
public class crumbControllerShould
{
[Fact]
public void GetBreadCrumbsTest()
{
IConfiguration _configuration;
IHostingEnvironment _env;
ILoggerManager _logger;
int tag_X_ParentID = 12;
var mock_logger = new Mock<ILoggerManager>();
_logger = mock_logger.Object;
var mock_configuration = new Mock<IConfiguration>();
_configuration = mock_configuration.Object;
var mock_env = new Mock<IHostingEnvironment>();
mock_env
.Setup(m => m.EnvironmentName)
.Returns("http://localhost:8980/");
_env = mock_env.Object;
Assert.IsAssignableFrom<IHostingEnvironment>(_env);
Assert.IsAssignableFrom<IConfiguration>(_configuration);
Assert.IsAssignableFrom<ILoggerManager>(_logger);
var controller = new BreadcrumbController(_configuration, _env, _logger);
var result = controller.GetBreadcrumb(tag_X_ParentID);
Assert.NotNull(result);
Assert.IsType<IEnumerable<Crumb>>(result);
//this line fails indicating that expected: System.Collections.Generic.IEnumerable'1[[FHH.crumpApi.Entitities.crumb, FHH.BreadcrumbApi]]
//Actual: Microsoft.AspNetCore.Mvc.ActionResult'1 [[System.Collections.Generic.IEnumerable'1[[FHH.crubmApi.Entities.crumb,FHH.crumbapi]]
}
}
;Пожалуйста, посмотрите на закомментированную строку в коде, который объясняет проблему.
Кроме того, мне нужно получить объект для сравнения Assert.Equal (2, item.tagID).
Если я исправлюВ связи с проблемой, я бы назначил это переменной с именем actionResult, а затем это присвоило его var item = actionResult.firstOrDefault (), чтобы получить item.tagID.Я следую следующему образцу на этом сайте для IEnumerable модульного теста.Спасибо за любые отзывы.
Смотрите пример ссылки