3 ms·
Go has a basic FS abstraction in the standard library: https://dev.to/rezmoss/gos-fs-package-modern-file-system-abstraction-19-5aad https://dev.to/rezmoss/gos-f
by lenkite 1y ago
Go has a basic FS abstraction in the standard library: https://dev.to/rezmoss/gos-fs-package-modern-file-system-abstraction-19-5aad https://dev.to/rezmoss/gos-fs-package-modern-file-system-abs...
But the stdlib one is a bit barebones. So people created: https://github.com/spf13/afero https://github.com/spf13/afero
- tayo42 1y agoThis is one nice thing about go. I think was trying to test something in Rust and I was surprised by how many people were OK with using real file's for unit testing. It seems like a massive oversight for being able to use rust in a corporate environment.
- jen20 1y ago> It seems like a massive oversight for being able to use rust in a corporate environment. Why does being in a corporate environment matter?
- tayo42 1y agoPermissions are usually more strict then a hobby projects. So you can't just be writing and leaving things all over the file system without the possibility of failure. Or maybe your using drives over a network and randomly your tests will now fail becasue of things outside your control. Things like that. That's why when writing tests you always want them to actually do io like that.
- bccdee 1y agoSeems like you could just put your test files in a tmpfs, if leaving files laying around is an issue.
- tayo42 1y agoYou need to mount and unmount fikesystems to do that. Take a look at the library mentioned,afero, and you'll see how nice it handles working with the file system in tests. You can have everything in memory, and a whole new fs in each test
- jen20 1y agoThe problem is it only tests trivial properties of the API. That might be enough for some things, but it’s not a panacea.