Testing¶
Testing guide for Toss development.
Running Tests¶
Rust Tests¶
Flutter Tests¶
All Tests¶
Test Structure¶
Rust Core Tests¶
Located in rust_core/src/**/tests/:
- Network Tests: P2P, relay, mDNS
- Crypto Tests: Key exchange, encryption
- Protocol Tests: Message serialization
- Storage Tests: Database operations
Flutter Tests¶
Located in flutter_app/test/:
- Widget Tests: UI component tests
- Service Tests: Service layer tests
- Integration Tests: End-to-end tests
Test Coverage¶
Target coverage: 70%
Check coverage:
Writing Tests¶
Rust Test Example¶
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_function() {
assert_eq!(function(), expected);
}
}
Flutter Test Example¶
void main() {
testWidgets('Widget test', (WidgetTester tester) async {
await tester.pumpWidget(MyWidget());
expect(find.text('Hello'), findsOneWidget);
});
}
Integration Tests¶
E2E tests require FFI bindings:
CI/CD Testing¶
Tests run automatically on:
- Every push to main/develop
- Every pull request
- Nightly builds
See .github/workflows/ci.yml for details.
Next Steps¶
- API Reference - API documentation
- Platform Support - Platform-specific details
- Architecture - System design