Any way I can import modules depend on #[cfg(test)]? Some sort like this:
The reason I want this is that real::Foo is very hard to constructing, and it has nothing to do with testing, a simple version of Foo is helpful for writing test cases. Generic type can do this, but I don't want my code to be that complicated.
If possible, you should probably try to use generics and dependency injection instead of monkey-patching your code's imports to swap Foo out for a dummy version during testing.
That approach tends to be more maintainable in the long run because you won't need to update test::Foo every time real::Foo's API changes. It'll also help avoid situations during testing where one part of the codebase uses test::Foo and another uses real::Foo, and you run into "Found test::Foo but expected real::Foo" errors.