slogan3

Verbeter mijn Cursor AI-gebaseerde codetests met gericht testontwerp

description

Met deze prompt kan ik mijn teststrategieën verbeteren door Cursor te gebruiken voor het ontwerpen van gerichte en diepgaande tests die mijn code betrouwbaarder maken. Het lost het probleem op van inefficiënte of onvoldoende testdekking en biedt concrete tips om tests beter af te stemmen op mijn programmeertaal en projectbehoeften. Dit is beter dan alternatieven omdat het Cursor’s AI-mogelijkheden benut voor testoptimalisatie die specifiek aan mijn context zijn aangepast.

prompt

Help me mijn teststrategie voor mijn project te verbeteren met Cursor. Mijn programmeertaal: <voer je programmeertaal in>. Beschrijf het type tests dat ik wil ontwerpen: <beschrijf unittests, integrat ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een gedetailleerde gids om je teststrategie voor unittests met Cursor in JavaScript te verbeteren, met speciale aandacht voor foutafhandeling: 1. Begrijp de rol van Cursor in je project - Zorg dat je volledig inzicht hebt in hoe Cursor werkt binnen je codebase. - Identificeer welke functies of methoden je wilt testen en hoe Cursor deze gebruikt. 2. Ontwerp gerichte unittests voor functies die Cursor gebruiken - Test elke functie die interactie heeft met Cursor afzonderlijk. - Focus op verschillende scenario’s: normale werking, randgevallen en foutcondities. 3. Specifieke aandacht voor foutafhandeling - Simuleer foutscenario’s zoals: - Cursor niet gevonden of ongeldige referenties - Fouten tijdens het ophalen of verwerken van gegevens - Verbindingen die onverwacht worden verbroken - Onverwachte dataformaten of lege resultaten - Gebruik mocking en stubbing om foutmeldingen te forceren en te controleren of je code deze correct afhandelt. 4. Gebruik Cursor-specifieke testtechnieken - Mock een Cursor-object dat verschillende staten kan aannemen (bijvoorbeeld: succesvol, leeg, foutief) - Test de reactie van je functies op deze verschillende Cursor-statussen. 5. Automatisering en herhaalbaarheid - Automatiseer je tests zodat ze snel kunnen worden uitgevoerd bij elke codewijziging. - Zorg dat tests herhaalbaar zijn en geen afhankelijkheden hebben van externe systemen. 6. Integratie van Cursor in testframeworks - Implementeer je tests in frameworks zoals Jest of Mocha, met gebruik van mocking libraries zoals Sinon.js om Cursor te simuleren. - Maak gebruik van beforeEach/afterEach om testomgevingen schoon te houden. 7. Documenteer je testscenario’s - Beschrijf duidelijk wat elke test controleert, vooral bij foutafhandelingsscenario’s. - Voeg commentaar toe bij tests die specifieke foutcondities simuleren. 8. Optimaliseer en onderhoud je tests regelmatig - Voeg nieuwe tests toe bij nieuwe functies of foutscenario’s. - Verwijder of pas tests aan bij refactoring van je code. Voorbeeld: Een test voor foutafhandeling met Cursor in Jest (pseudocode) ```javascript test('Fout bij ophalen van gegevens via Cursor', () => { const mockCursor = { next: jest.fn().mockImplementation(() => { throw new Error('Database fout'); }), close: jest.fn(), }; const fetchData = require('./fetchData'); // jouw functie die Cursor gebruikt expect(() => { fetchData(mockCursor); }).toThrow('Database fout'); }); ``` Samengevat: - Simuleer diverse foutscenario’s met gemockte Cursor-objecten. - Controleer of je code de fouten correct afhandelt (bijvoorbeeld door try/catch of foutmeldingen). - Automatiseer en documenteer je tests voor maximale betrouwbaarheid. Wil je dat ik een voorbeeldfunctie of testcase verder uitwerk?
provider: deepseek
model: deepseek-chat
Zeker! Hier een gedetailleerd plan om je unittest-strategie voor JavaScript te verbeteren met Cursor, specifiek gericht op foutafhandeling: ## 1. Teststructuur en Organisatie ### Gebruik Cursor's AI-capaciteiten om: - **Test templates te genereren**: Vraag Cursor om boilerplate code voor Jest/Testing Library - **Test suites te organiseren**: Creëer logische groeperingen per module/component - **Consistente naamconventies**: `[module].test.js` of `[function].spec.js` ```javascript // Voorbeeld: Cursor prompt // "Genereer een Jest test template voor een API service met foutafhandeling" ``` ## 2. Foutafhandeling Testscenario's ### Specifieke testcases voor foutafhandeling: ```javascript // 1. Async functies met error handling describe('API Service Error Handling', () => { test('gooit error bij network failure', async () => { await expect(fetchData()).rejects.toThrow('Network error'); }); test('handelt HTTP 404 errors correct af', async () => { await expect(getUser(999)).rejects.toThrow('User not found'); }); }); // 2. Input validatie errors describe('Input Validation', () => { test('valideert required fields', () => { expect(() => createUser(null)).toThrow('Name is required'); }); test('handelt invalid email format af', () => { expect(() => validateEmail('invalid')).toThrow('Invalid email format'); }); }); ``` ## 3. Cursor-specifieke Optimalisaties ### Gebruik Cursor's features voor: - **Quick Fix suggestions**: Laat Cursor testcode refactoren - **AI-assisted test generation**: ``` Prompt: "Schrijf unit tests voor deze error handling functie met Jest" ``` - **Code completion**: Auto-aanvullen van test patterns ## 4. Test Data Management ```javascript // Gebruik Cursor om test data factories te genereren const createErrorScenario = (errorType, message) => ({ error: new Error(message), type: errorType, timestamp: Date.now() }); // Mock data voor error responses const mockErrorResponses = { network: { ok: false, status: 500 }, notFound: { ok: false, status: 404 } }; ``` ## 5. Geavanceerde Foutafhandeling Tests ### Test custom error classes: ```javascript class ValidationError extends Error { constructor(message, field) { super(message); this.field = field; this.name = 'ValidationError'; } } // Test custom errors test('ValidationError bevat correcte field info', () => { try { throw new ValidationError('Invalid input', 'email'); } catch (error) { expect(error).toBeInstanceOf(ValidationError); expect(error.field).toBe('email'); } }); ``` ## 6. Integration met Cursor Workflow ### Stappenplan: 1. **Analyseer code**: Gebruik Cursor om code te begrijpen 2. **Genereer test skeletons**: ``` "Genereer unit tests voor alle error cases in deze functie" ``` 3. **Refactor tests**: Gebruik Cursor's suggesties om tests te verbeteren 4. **Debug tests**: Gebruik Cursor om failing tests te analyseren ## 7. Best Practices voor Optimalisatie - **Test isolation**: Elke test moet onafhankelijk zijn - **Descriptive test names**: Duidelijke beschrijving van expected behavior - **Error message matching**: Test specifieke error messages - **Async error handling**: Gebruik `.rejects` en `.resolves` matchers ## 8. Hulpmiddelen en Libraries Configureer Cursor om te werken met: - **Jest** als test runner - **@testing-library/react** voor React componenten - **Sinon** voor spies en stubs - **Nock** voor HTTP request mocking ## 9. Continuous Improvement Gebruik Cursor regelmatig om: - Test coverage te analyseren - Test patterns te refactoren - Nieuwe error scenarios toe te voegen - Performance van tests te optimaliseren Deze aanpak zorgt voor robuuste tests die alle foutscenario's dekken en makkelijk onderhoudbaar zijn met Cursor's AI-assistentie.