Stubs, mocks & spies
Understanding Mocks, Stubs, and Spies
Using Sinon for Mocking, Stubbing, and Spying
Installing Sinon
npm install sinon @types/sinon -DUsing Sinon in Your Tests
import { IRouter } from '@aurelia/router';
import { customElement, resolve } from 'aurelia';
@customElement('my-component')
export class MyComponent {
constructor(private router: IRouter = resolve(IRouter)) {}
navigate(path: string) {
return this.router.load(path);
}
}Stubbing Individual Methods
Mocking an Entire Dependency
Spying on Methods
Mocking Dependencies Directly in the Constructor
Conclusion
Comprehensive Dependency Injection Mocking
Testing Components with @inject Decorator
@inject DecoratorTesting Interface-Based Dependency Injection
Testing Optional Dependencies
Testing Service Dependency Chains
Testing Mixed DI Patterns
Testing Factory and Transient Dependencies
Testing Circular Dependencies and Complex DI Scenarios
Testing Scoped/Hierarchical DI
Testing Conditional DI and Dynamic Registration
Advanced Mocking Patterns
Testing with Aurelia's Built-in Testing Utilities
Mocking Complex Dependencies
Mocking Multiple Related Services
Testing Error Scenarios
Spy Verification Patterns
Testing with Official Aurelia Packages
Testing with @aurelia/validation
Testing with @aurelia/router
Testing with @aurelia/state
Testing with @aurelia/dialog
Testing with @aurelia/fetch-client
Testing with @aurelia/i18n
Testing Package Integration Best Practices
Common Package Testing Patterns
Last updated
Was this helpful?