mimblewimble / grin

Minimal implementation of the Mimblewimble protocol.
https://grin.mw/
Apache License 2.0
5.04k stars 991 forks source link

Re-introduce integration tests for the node #2957

Open hashmap opened 5 years ago

hashmap commented 5 years ago

In the past the node and the wallet were in the same repo. When the wallet was extracted into a separate repo, integration tests were moved to - https://github.com/mimblewimble/grin-wallet/tree/master/integration It would be beneficial to provide a simple way to run integration suits as part of node tests too. There are several possible options (there are some other for sure):

WhoNeedszZz commented 4 years ago

My understanding is that this situation is a typical reference situation for mocking. As long as the tests are kept up-to-date with current functionality on the other end I can't really see an issue with that. It makes sense that they are separated as a wallet requires connecting to a node, but a node doesn't have to connect to a wallet necessarily.

From my perspective, the suggestion of moving tests around is a signal that the tests could be better isolated. If I'm understanding correctly, the expected behavior for those aspects in question are defined so mocking should be suitable. Is this accurate?

hashmap commented 4 years ago

Mocking is fine in unit tests, the point of integration tests is to check how different components work together, not in isolation. You would end up testing your perfectly behaving mocks.

Node does need to connect to wallet to test mining scenarios.