|
|
|
|
|
by pjc50
2576 days ago
|
|
The two big problems seem to be concurrency (always a problem) and state, which immediately suggest that making things as functional as possible would help a lot. Ideally all state that's used in a test would be reset to a known value at or before the start of the test, but this is quite hard for external non-mocked databases, clocks and so on. For integration tests, do you run in a controllable "safe" environment and risk false-passes, or an environment as close as possible to production and risk intermittent failure? A variant I've seen is "compiled languages may re-order floating point calculations between builds resulting in different answers", which is extremely annoying to deal with especially when you can't just epsilon it away. |
|