The important thing query: Would altering thread scheduling, community latency, or a timeout alter correctness? Then you might have connascence of timing.
Connascence of worth
Connascence of worth happens when a number of values should be correctly coordinated between modules. For example, think about you might have a unit take a look at that appears like this:
[Test]
process TestCheckoutValue {
PriceScanner = new TPriceScanner();
PriceScanner.Scan('Frosted Sugar Bombs');
Assert.Equals(50, PriceScanner.CurrentBalance);
}
So we’ve written the take a look at. Now, within the spirit of Check Pushed Growth, I’ll make the take a look at move as simply and easily as attainable.
void PriceScanner.Scan(aItem: string) {
CurrentBalance = 50;
}
We now have tight coupling between TPriceScanner
and our take a look at. We clearly have connascence of title, as a result of each courses depend on the title CurrentBalance
. However that’s comparatively low-level connascence, and completely acceptable. We’ve connascence of sort, as a result of each should agree on the sort TPriceScanner
, however once more, that’s benign. And we’ve connascence of that means, as a result of each routines have a hard-coded dependency on the quantity 50. That must be refactored.