Minta GPT dengan suite tes membuatnya menulis kode yang sangat akurat
AITDD berjalan di atas roti, pastikan Anda terlebih dahulu menginstal versi BUN terbaru.
Instal AITDD secara global sebagai CLI:
curl -sSL https://raw.githubusercontent.com/di-sukharev/AI-TDD/master/install.sh | bash
Dapatkan kunci API Anda dari OpenAI. Pastikan Anda menambahkan detail pembayaran, jadi API berfungsi.
Atur tombol ke AITDD Config:
aitdd config set OPENAI_API_KEY < your_api_key >
Kunci API Anda disimpan secara lokal di file konfigurasi ~/.aitdd/config
dan tidak disimpan di mana pun dengan cara lain.
Atur perintah untuk menjalankan tes:
aitdd config set RUN_TESTS " npm run test "
Kunci API Anda disimpan secara lokal di file konfigurasi ~/.aitdd/config
dan tidak disimpan di mana pun dengan cara lain.
Berikut ini adalah rangkaian tes frontend yang ditulis di perpustakaan pengujian Jest +. Ya, AITDD dengan mudah lulus tes frontend bahkan:
import React from "react" ;
import { rest } from "msw" ;
import { setupServer } from "msw/node" ;
import { render , fireEvent , waitFor , screen } from "@testing-library/react" ;
import "@testing-library/jest-dom" ;
import Fetch from "../fetch" ;
const server = setupServer (
rest . get ( "/greeting" , ( req , res , ctx ) => {
return res ( ctx . json ( { greeting : "hello there" } ) ) ;
} )
) ;
beforeAll ( ( ) => server . listen ( ) ) ;
afterEach ( ( ) => server . resetHandlers ( ) ) ;
afterAll ( ( ) => server . close ( ) ) ;
test ( "loads and displays greeting" , async ( ) => {
render ( < Fetch url = "/greeting" / > ) ;
fireEvent . click ( screen . getByText ( "Load Greeting" ) ) ;
await waitFor ( ( ) => screen . getByRole ( "heading" ) ) ;
expect ( screen . getByRole ( "heading" ) ) . toHaveTextContent ( "hello there" ) ;
expect ( screen . getByRole ( "button" ) ) . toBeDisabled ( ) ;
} ) ;
test ( "handles server error" , async ( ) => {
server . use (
rest . get ( "/greeting" , ( req , res , ctx ) => {
return res ( ctx . status ( 500 ) ) ;
} )
) ;
render ( < Fetch url = "/greeting" / > ) ;
fireEvent . click ( screen . getByText ( "Load Greeting" ) ) ;
await waitFor ( ( ) => screen . getByRole ( "alert" ) ) ;
expect ( screen . getByRole ( "alert" ) ) . toHaveTextContent ( "Oops, failed to fetch!" ) ;
expect ( screen . getByRole ( "button" ) ) . not . toBeDisabled ( ) ;
} ) ;
Siap? Berikut adalah kode yang dihasilkan oleh AITDD (GPT-4) untuk lulus tes:
import React , { useState } from "react" ;
function Fetch ( { url } ) {
const [ data , setData ] = useState ( null ) ;
const [ error , setError ] = useState ( null ) ;
const [ loading , setLoading ] = useState ( false ) ;
async function fetchData ( ) {
setLoading ( true ) ;
try {
const response = await fetch ( url ) ;
if ( ! response . ok ) throw new Error ( "Failed to fetch" ) ;
const data = await response . json ( ) ;
setData ( data . greeting ) ;
} catch ( error ) {
setError ( error . message ) ;
} finally {
setLoading ( false ) ;
}
}
return (
< div >
{ data && < h1 role = "heading" > { data } < / h1 > }
{ error && < div role = "alert" > { error } < / div > }
< button onClick = { fetchData } disabled = { loading } >
Load Greeting
< / button >
< / div >
) ;
}
export default Fetch ;
Anda dapat menghubungi AITDD seperti ini:
aitdd run
Anda membayar permintaan Anda sendiri ke Openai API. AITDD menggunakan model GPT terbaru secara default, periksa harganya. Token respons maksimum diatur ke 2000, Anda dapat menyesuaikannya melalui ait config set maxTokens=<number>
.
Saya tidak bisa mengelola model chatgpt untuk menyelesaikan masalah. Saya mencoba beberapa memotretnya dengan contoh respons, tidak mengerti apa yang saya inginkan. Jika Anda ingin mencoba mengelolanya melalui chatgpt - uji dan buka PR