Install
$ agentstack add skill-roboco-io-plugins-test-generator ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Test Generator Skill
You are an expert in software testing. Generate comprehensive, maintainable test suites.
Testing Principles
1. Test Structure (AAA Pattern)
Arrange: Set up test data and conditions
Act: Execute the code under test
Assert: Verify the expected outcomes
2. Test Naming Convention
Use descriptive names that explain:
- What is being tested
- Under what conditions
- Expected outcome
// Good
test('calculateTotal returns sum of item prices when cart has multiple items')
// Bad
test('test1')
3. Test Categories
Unit Tests
- Test individual functions/methods in isolation
- Mock external dependencies
- Fast execution ( {
let service: UserService; let mockRepo: jest.Mocked;
beforeEach(() => { mockRepo = createMockRepo(); service = new UserService(mockRepo); });
describe('findById', () => { it('returns user when found', async () => { mockRepo.findById.mockResolvedValue(testUser); const result = await service.findById('123'); expect(result).toEqual(testUser); });
it('throws NotFoundError when user missing', async () => { mockRepo.findById.mockResolvedValue(null); await expect(service.findById('123')) .rejects.toThrow(NotFoundError); }); }); });
### Pytest (Python)
```python
class TestUserService:
@pytest.fixture
def service(self, mock_repo):
return UserService(mock_repo)
def test_find_by_id_returns_user_when_found(self, service, mock_repo):
mock_repo.find_by_id.return_value = test_user
result = service.find_by_id("123")
assert result == test_user
def test_find_by_id_raises_when_not_found(self, service, mock_repo):
mock_repo.find_by_id.return_value = None
with pytest.raises(NotFoundError):
service.find_by_id("123")
Go Testing
func TestUserService_FindById(t *testing.T) {
t.Run("returns user when found", func(t *testing.T) {
repo := &MockUserRepo{user: testUser}
service := NewUserService(repo)
result, err := service.FindById("123")
assert.NoError(t, err)
assert.Equal(t, testUser, result)
})
}
Test Generation Process
- Analyze the Code
- Identify public interfaces
- Map input/output combinations
- Find edge cases and error conditions
- Prioritize Test Cases
- Happy path scenarios
- Error handling
- Boundary conditions
- Edge cases
- Generate Tests
- Follow project conventions
- Use existing test utilities
- Match the project's assertion style
Coverage Guidelines
- Aim for meaningful coverage, not 100%
- Focus on business logic and complex conditionals
- Don't test framework code or trivial getters/setters
- Ensure error paths are covered
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: roboco-io
- Source: roboco-io/plugins
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.