Sdílet prostřednictvím


Stručný úvod: Generování dat pro testování a mockování

V tomto rychlém startu se dozvíte, jak pomocí GitHub Copilotu vytvářet realistické a motivované datové sady pro podporu vývoje, testování a ukázek aplikací. Díky analýze schématu a kontextu vaší databáze může GitHub Copilot generovat testovací data v souladu s formáty reálného světa, simulovat hraniční případy a snížit ruční úsilí o plnění databází, což urychluje testování a činí ho více reprezentativním pro skutečné scénáře.

Začínáme

Ujistěte se, že jste připojení k databázi a máte otevřené okno aktivního editoru s rozšířením MSSQL. Toto připojení umožňuje účastníkovi @mssql chatu porozumět kontextu vašeho databázového prostředí a umožnit přesné a kontextové návrhy. Bez připojení k databázi nebude účastník chatu mít schéma ani datový kontext, aby poskytoval smysluplné odpovědi.

Následující příklady používají AdventureWorksLT2022 ukázkovou databázi, kterou si můžete stáhnout z domovské stránky Ukázky microsoft SQL Serveru a projekty komunity .

Nejlepších výsledků dosáhnete, když upravíte názvy tabulek a schémat tak, aby odpovídaly vašemu vlastnímu prostředí.

Ujistěte se, že chat obsahuje předponu @mssql . Například zadejte @mssql svůj dotaz nebo výzvu. Tím zajistíte, že účastník chatu pochopí, že žádáte o pomoc související s SQL.

Generování realistických a testovatelných dat pomocí GitHub Copilotu

GitHub Copilot vám může pomoct s generováním testovacích a napodobených dat přímo ze schématu SQL nebo ukázek JSON. GitHub Copilot nabízí kontextové návrhy, které vám pomůžou zkrátit čas a zlepšit pokrytí, ať už připravujete datové sady pro ukázky, testování hraničních případů nebo osazování vývojového prostředí s motivovanými nebo randomizovanými daty. Tyto návrhy jsou užitečné zejména ve scénářích, kdy by ruční zadávání dat bylo pomalé nebo nekonzistentní.

Tady jsou běžné případy použití a příklady toho, co se můžete zeptat prostřednictvím účastníka chatu.

Generování testovacích dat

Využijte GitHub Copilot k generování tematických, náhodně generovaných nebo reprezentativních testovacích dat pro vaše existující tabulky. Můžete požadovat konkrétní počty řádků, použít vzory názvů a hodnot nebo vytvářet datové sady založené na externích strukturách, jako jsou ukázky JSON.

Ukázka testovacích zákaznických dat

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

Příklad vzorových dat o produktech

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

Příklad simulovaných prodejních dat

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

Generování napodobených dat z ukázky 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" }
]

Testování hraničních případů

Využijte GitHub Copilot k simulaci hraničních případů a ověřte chování systému. GitHub Copilot může pomoct generovat správná data, ať už používáte obchodní logiku zátěžového testování, kontrolu chyb ověření dat nebo zajištění relační konzistence. Může také napsat kontrolní výrazy nebo testovací logiku pro ověření výsledků.

Omezení počtu testů

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.

Testovací formát e-mailové adresy

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

Testování cenových anomálií krajních případů

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

Testování integrity dat pomocí mock testování

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.

Testování obchodní logiky

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.

Test ověřování null

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.

Test záporných hodnot

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.

Podělte se o své zkušenosti

Pokud nám chcete pomoct upřesnit a vylepšit GitHub Copilot pro rozšíření MSSQL, odešlete zpětnou vazbu pomocí následující šablony problému Na GitHubu: Váš názor na GitHub Copilot

Při odesílání zpětné vazby zvažte následující:

  • Otestované scénáře – Dejte nám vědět, na které oblasti jste se zaměřili, například na vytváření schématu, generování dotazů, zabezpečení, lokalizaci.

  • Co dobře fungovalo – popište všechny zážitky, které se cítily hladce, užitečné nebo překročily vaše očekávání.

  • Problémy nebo chyby – Zahrňte všechny problémy, nekonzistence nebo matoucí chování. Snímky obrazovky nebo nahrávky obrazovky jsou užitečné hlavně.

  • Návrhy ke zlepšení – Sdílejte nápady na zlepšení použitelnosti, rozšíření pokrytí nebo vylepšení odpovědí GitHub Copilotu.