14,953
edits
| Line 109: | Line 109: | ||
JetBrain 推出 [https://plugins.jetbrains.com/plugin/22282-ai-assistant AI Assistant 外掛]功能,目前付費客戶可以免費試用 7 天。它下的 prompt,供大家參考 | JetBrain 推出 [https://plugins.jetbrains.com/plugin/22282-ai-assistant AI Assistant 外掛]功能,目前付費客戶可以免費試用 7 天。它下的 prompt,供大家參考 | ||
==== | ==== Prompt from JetBrain ==== | ||
<pre> | <pre> | ||
Write "XXXClassTest' tests for the | Write "XXXClassTest' tests for the | ||
| Line 141: | Line 125: | ||
</pre> | </pre> | ||
==== Prompt with Complete Testing Strategy ==== | |||
<pre> | |||
Write complete unit tests for the "$METHOD_NAME" method in the "$CLASS_NAME" class. | |||
## Test Target | |||
- Class: $CLASS_NAME | |||
- Method: $METHOD_NAME | |||
- Test Class Name: ${CLASS_NAME}Test | |||
- Namespace: $NAMESPACE | |||
- Source File: $FILE_NAME | |||
## Source Code | |||
\```php | |||
$CODE | |||
\``` | |||
## Writing Conventions | |||
**File Structure** | |||
- Test file must begin with `<?php` | |||
- Namespace should be `Tests\$NAMESPACE` | |||
- Place test file at `__tests__/${CLASS_NAME}Test.php` | |||
**Test Conventions** | |||
- Extend `PHPUnit\Framework\TestCase` | |||
- Each test method should cover only a single behavior | |||
- Method naming format: `test_[method_name]_[scenario_description]` | |||
- Use `setUp()` to initialize shared objects | |||
**Coverage** | |||
- Happy Path: expected results under normal input | |||
- Edge Cases: boundary values, null values, extreme inputs | |||
- Error States: thrown exceptions, error returns | |||
## Output Requirements | |||
- Test file must be complete and executable without any modifications | |||
- Add a comment above each test method describing its purpose | |||
- Include the CLI command to run the test file | |||
</pre> | |||
Instruction of Complete Testing Strategy | |||
1. '''Happy Path''' — Verifies the program behaves correctly under expected, valid inputs. | |||
<pre lang="php"> | |||
// e.g. formatDate should return the correct format when given a valid date | |||
$this->assertSame('2024/01/15', $this->formatter->format('2024-01-15')); | |||
</pre> | |||
2. '''Edge Cases''' — Covers extreme or atypical but still valid inputs. | |||
<pre lang="php"> | |||
// e.g. empty string, zero value, maximum integer, boundary date | |||
$this->assertSame('', $this->formatter->format('')); | |||
</pre> | |||
3. '''Error States''' — Validates how the program handles illegal inputs or system failures. | |||
<pre lang="php"> | |||
// e.g. should throw an exception or degrade gracefully when an invalid date is passed | |||
$this->expectException(\InvalidArgumentException::class); | |||
$this->formatter->format(null); | |||
</pre> | |||
==== Simple version ==== | |||
<pre> | <pre> | ||
Write PHPUnit test case including edge cases | Write PHPUnit test case including edge cases | ||