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 tests
In 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...