بنقرة واحدة
write-python-unit-tests
// Write Python unit tests for Python code. Use when: creating new tests, improving test coverage, testing functions or classes in isolation, writing test cases for edge cases, or following TDD practices.
// Write Python unit tests for Python code. Use when: creating new tests, improving test coverage, testing functions or classes in isolation, writing test cases for edge cases, or following TDD practices.
Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions "red-green-refactor", wants integration tests, or asks for test-first development.
Write Node.js/TypeScript unit tests for the playwright-wrapper layer. Use when: creating new Jest tests, mocking Playwright API calls, testing getters/interaction/browser-control functions in isolation, improving Node.js test coverage.
Parse Robot Framework test results from output.xml. Use when: analyzing test execution results, extracting pass/fail statistics, filtering failures, summarizing test runs
Write or review Robot Framework acceptance tests for the Browser library. Use when: creating new .robot test files, adding test cases, writing user keywords, writing library keywords in atest/library/, or reviewing existing tests for rule compliance.
| name | write-python-unit-tests |
| description | Write Python unit tests for Python code. Use when: creating new tests, improving test coverage, testing functions or classes in isolation, writing test cases for edge cases, or following TDD practices. |
| applyTo | utest/** |
Python unit tests must always be written in the utest folder and using pytest.
Unit tests must be readable and maintainable. They should test one thing at a time, and be easy to understand. Use descriptive names for test functions and variables.
Linting must be done by calling inv lint-python --fix to ensure consistent formatting and style.
@pytest.fixture(scope="module")
def cookie():
return Cookie(None)
def test_cookie_as_dot_dict_expiry(cookie: Cookie):
epoch = 1604698517
data = cookie._cookie_as_dot_dict({"expires": epoch})
assert data.expires == datetime.fromtimestamp(epoch, tz=timezone.utc)
Use assert statements to check the expected outcomes of the code being tested. If there need to
assert longer data structures, use approval tests. When test are run, ask user to look the
approval test file and approve it if the data structure is correct. If the data structure is incorrect, ask user to update the approval test file with the correct data structure and re-run the tests.
Unit tests can be run with invoke:
inv utest
Because must test are readable, avoid comments or docstrings that explain what the test is doing. The test should be self-explanatory. If you find yourself needing to explain what the test is doing, consider refactoring the test to make it more readable. If there are complex data structures, consider using helper functions or fixtures to set up the test data in a more readable way or adding comments on the key point of the data structure.