Я пытаюсь протестировать метод действия в основном проекте asp.net.Тест не пройден, когда я ожидаю, что он пройдет успешно.Кажется, что проблема связана с типом возврата метода Action.
Я также пытался протестировать метод в BusinessLogic с типом возвращаемого значения 'IEnumerable', который работает, как и ожидалось.Вот код, который я пытаюсь выполнить.
Контроллер / Метод действия:
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
private IValueLogic _objValueLogic;
public ValuesController(IValueLogic objValueLogic) {
_objValueLogic = objValueLogic;
}
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
IEnumerable<string> allValues = _objValueLogic.GetAll();
return new ActionResult<IEnumerable<string>>(allValues);
}
}
Класс теста:
public class ValueApiTest
{
private ValuesController _objValuesController;
public ValueApiTest() {
Mock<IValueLogic> mockValueLogic = new Mock<IValueLogic>();
mockValueLogic.Setup(x => x.GetAll()).Returns(new string[] {"Value1", "Value2"});
_objValuesController = new ValuesController(mockValueLogic.Object);
}
[Fact]
public void GetAll_Success() {
ActionResult<IEnumerable<string>> expected = new ActionResult<IEnumerable<string>>(new string[] {"Value1", "Value2"});
ActionResult<IEnumerable<string>> actual = _objValuesController.Get();
Assert.Equal<ActionResult<IEnumerable<string>>>(expected, actual);
}
}
Я хочу, чтобы результат был как ожидаемый, так и ожидаемый.фактические значения равны, но это не с сообщением.Как видите, ожидаемые и фактические значения печатаются одинаково.
Starting test execution, please wait...
[xUnit.net 00:00:03.01] Test.WebApi.ValueApiTest.GetAll_Success [FAIL]
Failed Test.WebApi.ValueApiTest.GetAll_Success
Error Message:
Assert.Equal() Failure
Expected: ActionResult`1 { Result = null, Value = ["Value1", "Value2"] }
Actual: ActionResult`1 { Result = null, Value = ["Value1", "Value2"] }
Stack Trace:
at Test.WebApi.ValueApiTest.GetAll_Success() in /home/saurabh/DevEnv/DotNetCore/dotnet-template/Test/Test.WebApi/ValueApiTest.cs:line 23
Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.
Test Run Failed.
Test execution time: 4.5573 Seconds