Partilhar via


Início Rápido: Gerar dados para testes e mocking

Neste guia de início rápido, você aprenderá a usar o GitHub Copilot para criar conjuntos de dados realistas e temáticos para dar suporte ao desenvolvimento, testes e demonstrações de aplicativos. Ao analisar o esquema e o contexto do seu banco de dados, o GitHub Copilot pode gerar dados fictícios alinhados com formatos do mundo real, simular casos de borda e reduzir o esforço manual de propagação de bancos de dados, tornando os testes mais rápidos e representativos dos cenários reais.

Introdução

Certifica-te de que estás ligado a uma base de dados e que tens uma janela de editor ativa aberta com a extensão MSSQL. Quando se liga, o participante @mssql do chat compreende o contexto do seu ambiente de base de dados e pode dar sugestões precisas e conscientes do contexto. Se não se ligar a uma base de dados, o participante do chat não tem o esquema ou contexto de dados para fornecer respostas significativas.

Os exemplos a seguir usam o AdventureWorksLT2022 banco de dados de exemplo, que você pode baixar da home page de Exemplos e Projetos da Comunidade do Microsoft SQL Server .

Para obter melhores resultados, ajuste os nomes de tabelas e esquemas para corresponder ao seu próprio ambiente.

Certifique-se de que o chat inclui o prefixo @mssql . Por exemplo, digite @mssql seguido de a sua pergunta ou solicitação. Este prefixo garante que o participante do chat percebe que está a pedir assistência relacionada com SQL.

Gere dados realistas e testáveis com o GitHub Copilot

O GitHub Copilot pode ajudar-te a gerar dados de teste e mock diretamente a partir do teu esquema SQL ou exemplos JSON. Oferece sugestões contextuais para ajudar a reduzir o tempo e melhorar a cobertura, quer esteja a preparar conjuntos de dados para demonstrações, a testar casos excecionais ou a semear o seu ambiente de desenvolvimento com dados temáticos ou aleatórios. Estas sugestões são especialmente úteis em cenários onde a introdução manual de dados seria lenta ou inconsistente.

Aqui estão casos de uso comuns e exemplos do que você pode perguntar através do participante do bate-papo.

Geração de dados simulados

Use o GitHub Copilot para gerar dados simulados temáticos, aleatórios ou representativos para suas tabelas existentes. Você pode solicitar contagens de linhas específicas, aplicar padrões de nome/valor ou criar conjuntos de dados com base em estruturas externas, como exemplos JSON.

Dados de clientes simulados

Generate mock data for the `SalesLT.Customer` table with 100 sample records.

Exemplo de dados de produto simulados

Populate the `SalesLT.Product` table with 50 items, each with unique names and prices.

Exemplo de dados de vendas simulados

Generate mock data for the `SalesLT.SalesOrderHeader` table with 200 records, including order dates and customer IDs.

Gerar dados simulados a partir de uma amostra JSON

Based on this sample JSON with four records, generate a SQL table schema and populate it with 50 mock records. Use character names from well-known sci-fi books (for example, Dune, Foundation, Ready Player One) for the `firstName` and `lastName` fields to make the data more realistic and themed:

[
  { "firstName": "Alice", "lastName": "Smith", "email": "alice@example.com" },
  { "firstName": "Bob", "lastName": "Jones", "email": "bob@example.com" },
  { "firstName": "Charlie", "lastName": "Brown", "email": "charlie@example.com" },
  { "firstName": "Dana", "lastName": "White", "email": "dana@example.com" }
]

Testes de casos extremos.

Vá além da geração básica de dados usando o GitHub Copilot para simular casos de borda e verificar o comportamento do seu sistema. O GitHub Copilot pode ajudar a gerar os dados certos, quer esteja a testar a lógica de negócio, a verificar falhas de validação de dados ou a garantir a consistência relacional. Também pode escrever asserções ou lógica de teste para validar resultados.

Restrições de quantidade de teste

Generate insert statements for `SalesLT.SalesOrderDetail` with `OrderQty` values at the upper boundary (for example, 1,000 units) and verify that the system enforces quantity constraints.

Formato do endereço de email de teste

Create test data for `SalesLT.Customer` with invalid email formats and write a query that flags these records for review.

Anomalias de precificação em casos limite de teste

Generate test data for `SalesLT.Product` with edge-case pricing, such as `StandardCost = 0` or negative values, and write a query that highlights anomalies.

Teste a integridade dos dados com mocking

Simulate data integrity by generating 500 `SalesOrderDetail` rows that correctly reference valid `ProductID` and `SalesOrderID` values from related tables, and ensure GitHub Copilot includes validation logic.

Testar lógica de negócio

Write a test script that confirms the `SalesOrderHeader.TotalDue` value is always greater than the `SubTotal` for each order, helpful for spotting miscalculations in business logic.

Teste de validação nula

Using SQLAlchemy, create a test that attempts to insert a `SalesOrderDetail` record with a null `ProductID` and verify that the ORM raises an integrity error due to the foreign key constraint.

Testar valores negativos

With Prisma, generate test logic that tries to insert a `Product` with a `StandardCost` of `-10`. Validate that Prisma rejects the entry and logs an appropriate error message.

Partilhar a sua experiência

Para nos ajudar a refinar e melhorar o Copilot do GitHub para a extensão MSSQL, use o seguinte modelo de problema do GitHub para enviar seus comentários: Feedback do Copiloto do GitHub

Ao enviar comentários, considere incluir:

  • Cenários testados: Diga-nos em que áreas se focou, por exemplo, criação de esquemas, geração de consultas, segurança, localização.

  • O que funcionou bem: Descreva quaisquer experiências que tenham sido tranquilas, úteis ou que tenham superado as suas expectativas.

  • Problemas ou erros: Inclua quaisquer problemas, inconsistências ou comportamentos inesperados. Capturas de tela ou gravações de tela são especialmente úteis.

  • Sugestões para melhoria: Partilhe ideias para melhorar a usabilidade, expandir a cobertura ou melhorar as respostas do GitHub Copilot.