proc_macro2_test/
lib.rs

1#[cfg(test)]
2extern crate proc_macro2 as proc_macro;
3
4use proc_macro::TokenStream;
5
6#[proc_macro]
7pub fn demo(tokens: TokenStream) -> TokenStream {
8    assert_eq!(tokens.to_string(), "pub struct S ;");
9    "impl Trait for S {}".parse().unwrap()
10}
11
12#[cfg(test)]
13mod tests {
14    use quote::quote;
15
16    #[test]
17    fn it_works() {
18        let out = crate::demo(quote! {
19            pub struct S;
20        });
21
22        let expected = quote! {
23            impl Trait for S {}
24        };
25
26        assert_eq!(out.to_string(), expected.to_string());
27    }
28}