테스트 스위트로 GPT를 제출하면 코드를 신중하게 작성합니다.
AITDD는 BUN에서 실행되므로 먼저 최신 BUN 버전을 설치해야합니다.
전 세계적으로 AITDD를 CLI로 설치하십시오.
curl -sSL https://raw.githubusercontent.com/di-sukharev/AI-TDD/master/install.sh | bash
OpenAI에서 API 키를 얻으십시오. 결제 세부 정보를 추가하여 API가 작동합니다.
키를 AITDD 구성으로 설정하십시오.
aitdd config set OPENAI_API_KEY < your_api_key >
API 키는 로컬로 저장되어 ~/.aitdd/config
file에 저장되며 다른 방법으로는 저장되지 않습니다.
테스트를 실행하도록 명령을 설정하십시오.
aitdd config set RUN_TESTS " npm run test "
API 키는 로컬로 저장되어 ~/.aitdd/config
file에 저장되며 다른 방법으로는 저장되지 않습니다.
다음은 Jest + Testing Library로 작성된 프론트 엔드 테스트 스위트입니다. 예, AITDD는 프론트 엔드 테스트도 쉽게 통과합니다.
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 ( ) ;
} ) ;
준비가 된? 다음은 AITDD (GPT-4)가 테스트를 통과하기 위해 생성 한 코드입니다.
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 ;
AITDD를 다음과 같이 호출 할 수 있습니다.
aitdd run
OpenAI API에 대한 자신의 요청을 지불합니다. AITDD는 기본적으로 최신 GPT 모델을 사용하여 가격을 확인하십시오. 최대 응답 토큰은 2000으로 설정되며 ait config set maxTokens=<number>
를 통해 조정할 수 있습니다.
문제를 해결하기 위해 ChatGpt 모델을 관리 할 수 없었습니다. 응답 예제로 촬영하려고 시도했습니다. 내가 원하는 것을 이해하지 못합니다. chatgpt를 통해 관리하려는 경우 - 테스트하고 PR을 엽니 다.