anchor(Rust)でuse of undeclared crate or moduleエラー

Solana Anchor(実態はRust)で、anchor testを実行したときに発生したエラー。

現象

anchor testを実行したところ、以下のエラーが発生。

ターミナル:

error[E0433]: failed to resolve: use of undeclared crate or module `anchor_spl`
  --> programs/escrow/src/lib.rs:19:5
   |
19 | use anchor_spl::token::{self, SetAuthority, Token, TokenAccount, Transfer};
   |     ^^^^^^^^^^ use of undeclared crate or module `anchor_spl`

error[E0433]: failed to resolve: use of undeclared crate or module `spl_token`
  --> programs/escrow/src/lib.rs:20:5
   |
20 | use spl_token::instruction::AuthorityType;
   |     ^^^^^^^^^ use of undeclared crate or module `spl_token`

lib.rs:

use anchor_lang::prelude::*;
use anchor_spl::token::{self, SetAuthority, Token, TokenAccount, Transfer};
use spl_token::instruction::AuthorityType;

原因

lib.rsでCrateを宣言していたが、インストールし忘れていた。

対応

利用したいCrateを宣言して、anchor testを再実行すれば解決。
今回のケースでは anchor-spl と spl-token を追記。

Cargo.toml

[dependencies]
anchor-lang = "0.25.0"
anchor-spl = "0.25.0"
spl-token = { version = "3.3.0", features = ["no-entrypoint"] }