AI assistants in coding: Difference between revisions

Jump to navigation Jump to search
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>
為 "XXXClass" 類別中的 "xxx" 方法撰寫 "XXXClassTest" 測試。 指南:
 
- 撰寫類別和方法的測試描述。
- 測試檔案應該是完整且可編譯的,不需要進一步的操作。
- 確保每個測試專注於單一用例,以保持清晰和可讀性。
- PHP 測試檔案必須以 PHP 開頭標籤 ?php 開始
- 生成的測試類別應該在命名空間 XXX
- 檔案:XXXClass.php
 
```php
附上程式碼
```
</pre>
 
==== 英文版 ====
<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 ====


Simple version
<pre>
<pre>
Write PHPUnit test case including edge cases
Write PHPUnit test case including edge cases

Navigation menu