Chapter 47: Testing Your App in Ruby
Unit tests, integration tests, fuzz testing. In this chapter, you will learn testing your app in depth with Ruby code examples, explanations, and best practices.
Overview
This chapter covers testing your app for Kungfu.js developers using Ruby. We will start with the basics, move through practical examples, and end with advanced techniques and common pitfalls.
Why This Matters
Understanding testing your app is essential because it is a core part of building web applications. Every real-world app needs to handle unit tests, integration tests, fuzz testing. Skipping this chapter would leave a gap in your knowledge that would cause problems later.
Code Example
Here is how to handle this in Ruby:
// Unit test example
#[test]
fn test_router() {
let mut router = Router::new();
router.get("/hello", handler).unwrap();
match router.resolve(Method::Get, "/hello") {
RouteResolution::Found { .. } => {},
_ => panic!("expected Found"),
}
}
// Integration test
#[tokio::test]
async fn test_server() {
let resp = reqwest::get("http://localhost:3000/hello").await?;
assert_eq!(resp.status(), 200);
}
Common Mistakes
- Not reading the documentation: Always check the API reference when something does not work as expected.
- Skipping security: Never disable the default middleware unless you have a very good reason. Security is not optional.
- Not testing: Write tests for your handlers. Kungfu.js makes this easy with the built-in test utilities.
Summary
In this chapter, you learned about testing your app in Ruby. You saw code examples, understood how things work under the hood, and learned about common mistakes to avoid.
What is Next?
In chapter 48, we will cover Performance Tuning: io_uring, SIMD JSON, buffer pooling.