Integration tests
In the previous section, we checked that a part of our code works: now, we will check that the program as a whole works, by writing integration tests. These tests reside in the tests/ directory, so we start by creating it:
mkdir testsIn this directory, we can create a new file, tests/server.rs, in which we'll put the following content:
extern crate ftp; use std::process::Command; use std::thread; use std::time::Duration; use ftp::FtpStream;
We import the ftp crate which is an FTP client; it will be useful to test our FTP server. We need to add it in Cargo.toml as well:
[dev-dependencies] ftp = "^2.2.1"
Here we see a new section, dev-dependencies: it contains the dependencies that are needed outside the main crate itself, like in the integration tests. By putting the dependency here and not in [dependencies], it won't be available in the main crate, which is what we want.
Let's go back to the file tests/server.rs and add a test function:
#[test]
fn test_pwd() {
let child...