Я учусь писать модульные тесты, пожалуйста, не судите. У меня есть метод API ниже, написанный в C# для .NET 8.0, который я хочу проверить. Я использую Xunit, Entity Framework Core 8, SQL Server 2019. В настоящее время я переписываю его, чтобы отделить уровень данных, поэтому мне не придется контекст MOQ DB. < /P>
[HttpGet("GetABunch")]
public async Task GetABunch()
{
string[] myAnimals = { "dog", "cat" };
var animals = await _context.TodoItems
.Where(i => myAnimals.Contains(i.Name))
.ToListAsync();
return Ok(animals);
}
< /code>
Мой модульный тест не работает. Я получаю ошибку: < /p>
system.argumentexception: не может создать создание прокси класса: todoapidb.models.todocontext.
не может найти конструктор без параметра. (Параметр 'Constructorarguments') < /p>
< /blockquote>
Но перед тем, как сражаться с этой ошибкой и создавать конструктор контекста без параметров, я считаю, что мой тест концептуально неверен, пожалуйста, помогите исправить.[Fact]
public async Task GetABunch_ReturnsFilteredTodoItems()
{
// Arrange
var mockData = new List
{
new TodoItem { Id = 1, Name = "dog" },
new TodoItem { Id = 2, Name = "cat" },
new TodoItem { Id = 3, Name = "bird" }
}.AsQueryable();
var mockSet = new Mock();
mockSet.As().Setup(m => m.Provider).Returns(mockData.Provider);
mockSet.As().Setup(m => m.Expression).Returns(mockData.Expression);
mockSet.As().Setup(m => m.ElementType).Returns(mockData.ElementType);
mockSet.As().Setup(m => m.GetEnumerator()).Returns(mockData.GetEnumerator());
mockSet.As().Setup(m => m.GetAsyncEnumerator(It.IsAny()))
.Returns(new TestAsyncEnumerator(mockData.GetEnumerator()));
var mockContext = new Mock();
//mockContext.Setup(c => c.TodoItems).Returns(mockSet.Object);
mockContext.Setup(c => c.Set()).Returns(mockSet.Object);
var controller = new TodoItemsController(mockContext.Object);
// Act
var result = await controller.GetABunch();
// Assert
var actionResult = Assert.IsType(result.Result);
var returnedItems = Assert.IsType(actionResult.Value);
Assert.Equal(2, returnedItems.Count);
Assert.Contains(returnedItems, i => i.Name == "dog");
Assert.Contains(returnedItems, i => i.Name == "cat");
}
Я учусь писать модульные тесты, пожалуйста, не судите. У меня есть метод API ниже, написанный в C# для .NET 8.0, который я хочу проверить. Я использую Xunit, Entity Framework Core 8, SQL Server 2019. В настоящее время я переписываю его, чтобы отделить уровень данных, поэтому мне не придется контекст MOQ DB. < /P> [code][HttpGet("GetABunch")] public async Task GetABunch() { string[] myAnimals = { "dog", "cat" };
var animals = await _context.TodoItems .Where(i => myAnimals.Contains(i.Name)) .ToListAsync();
return Ok(animals); } < /code> Мой модульный тест не работает. Я получаю ошибку: < /p>
system.argumentexception: не может создать создание прокси класса: todoapidb.models.todocontext.
не может найти конструктор без параметра. (Параметр 'Constructorarguments') < /p> < /blockquote> Но перед тем, как сражаться с этой ошибкой и создавать конструктор контекста без параметров, я считаю, что мой тест концептуально неверен, пожалуйста, помогите исправить.[Fact] public async Task GetABunch_ReturnsFilteredTodoItems() { // Arrange var mockData = new List { new TodoItem { Id = 1, Name = "dog" }, new TodoItem { Id = 2, Name = "cat" }, new TodoItem { Id = 3, Name = "bird" } }.AsQueryable();
Я использую платформу Codeception и среду IDE Netbeans для автоматизации тестирования с использованием PHP.
Я хотел бы запустить 2 теста один за другим в группе, где сначала будет запущен тест API, а после успешного запуска теста API следующим...
Как написать модульный тест с использованием Xunit и платформы moq для этого метода
public async Task GetViewCode(string id, string code)
{
using var queryFactory = _queryFactory();
var row = await queryFactory.Query(TableName)
.Where( Id , id)...
И IndexedDB, и локальное хранилище являются магазинами значений ключей. Каково преимущество
иметь два магазина ключей /значения? Похоже, они работают в том же потоке, что и асинхронные вызовы
. Как это не заблокирует пользовательский интерфейс?...
У меня возникла проблема с модульным тестом функции Async. В настоящее время я использую MockingBird для проверки функции в Worker class, которая была вызвана из Interactor class или нет. Проблема в том, что когда-нибудь этот модульный тест будет...