For the complete documentation index, see llms.txt. This page is also available as Markdown.

Quick Reference ("How Do I...")

Practical answers to common testing questions in Aurelia 2.

Table of Contents


Getting Started

How do I set up my test environment?

Configure Jest (jest.config.js):

Configure Mocha (test/setup.ts):

How do I create a simple test fixture?

How do I test a component with a template file?

How do I use the builder pattern for fixtures?


Basic Component Testing

How do I test that a component renders correctly?

How do I test bindable properties?

How do I test computed properties?

How do I test conditional rendering?

How do I test repeat.for?


DOM Interaction & Assertions

How do I assert text content?

How do I assert HTML content?

How do I query DOM elements?

How do I assert CSS classes?

How do I assert attributes?

How do I assert computed styles?

How do I assert form values?


Testing with Dependencies

How do I inject a service into my test component?

How do I mock a service?

How do I test with custom elements/attributes?

How do I test with value converters?

How do I register multiple dependencies?


Async Testing

How do I wait for component initialization?

How do I test async lifecycle hooks?

How do I test data loading?

How do I test task queue operations?


Events & User Interaction

How do I trigger a click event?

How do I type into an input?

How do I trigger keyboard events?

How do I trigger form submission?

How do I trigger custom events?

How do I test two-way binding with events?


Router Testing

How do I test router navigation?

How do I test route parameters?

How do I test route hooks?


Forms & Input Testing

How do I test text input binding?

How do I test checkbox binding?

How do I test radio button binding?

How do I test select dropdown binding?

How do I test form validation?


Lifecycle Testing

How do I test lifecycle hooks?

How do I test detaching/unbinding?

How do I test @observable?

How do I test component dispose?


Mocking & Spies

How do I create a spy function?

How do I spy on a method?

How do I use mock objects?

How do I verify method calls?


Common Patterns

How do I test error handling?

How do I test conditional display?

How do I test promise templates?

How do I test dynamic composition?


Troubleshooting

Why is "Platform not set" error appearing?

Problem: Test runs before platform initialization.

Solution: Ensure bootstrapTestEnvironment() is called before createFixture():

Why is my component not updating after property change?

Problem: Async task queue hasn't flushed.

Solution: Wait for task queue:

Why is "window is not defined" error appearing?

Problem: Test environment doesn't provide browser APIs.

Solution: Configure test runner to use jsdom:

Why is my test fixture not cleaning up?

Problem: Using deprecated tearDown() or not calling stop().

Solution: Always use stop(true):

Why can't I find my element with getBy()?

Problem: Element not rendered yet or selector is wrong.

Solution: Verify element exists and check selector:

Why are my lifecycle hooks not firing?

Problem: Fixture not started or component not activated.

Solution: Always await .started:

How do I debug what's rendered?

Use printHtml() to log current DOM state:

Why is my mock not being used?

Problem: Service registered incorrectly or after component creation.

Solution: Register mock before building fixture:


See Also

Last updated

Was this helpful?