Closed2
Rust-TPRLを勉強する
テスト
#[should_panic]
記載するとテストケースでpanicに入ると正常終了になる(テストが)。
expectedに文字を入れるとFAILEDしたときにその文言が出力される。
#[should_panic(expected = "Guess value must be less than or equal to 100")]
#[ignore]をつけるとテストケースを無視できる。
無視されるテストのみ実行するなら
cargo test -- --ignored
extern
externを使うこと自作したクレートを呼び出すことができる。
adder2/src/lib.rs
pub fn add_two(a: i32) -> i32 {
internal_adder(a, 2)
}
adder2/tests/integration_test.rs
extern crate adder2;
#[test]
fn it_adds_two() {
asser_eq!(4, adder2::add_two(2));
}
testsディレクトリは特別で#[cfg(test)]をつけなくてもテストが実行できる。
--test
cargo test --test integration_test
上記のように--testにあとにテストを実行したいファイル名を記載すると、そのファイルだけテストを実行できる。
コマンドライン引数を取得
env::args().collect()を使うとコマンドライン引数を取得することができる。CLIツールを作るときに便利そう。
let args: Vec<String> = env::args().collect();
各引数の値をとりたいとき&args[x]で取得する。
let query = &args[1];
let filename = &args[2];
println!("Searchng for {}", query);
println!("In file {}", filename);
ファイルオープン
ファイルオープンにはFile::open()を使用する。
let mut f = File::open(filename).expect("file not found");
ファイルを読み込む、もしファイルがないなら「file not found」を表示させる。
ファイルの中身を格納する
空のStringを宣言してread_to_string()で宣言したStringのポインタにデータを格納する。何も記載されていない場合expect内が文字列が出力される。
let mut contents = String::new();
f.read_to_string(&mut contents)
.expect("something went wrong reading the file");
このスクラップは2021/10/28にクローズされました