37 lines
1.9 KiB
Plaintext
37 lines
1.9 KiB
Plaintext
!2 Table Smells
|
|
^MagicNumbers ... have the fixture map ^MagicNumbersFixed
|
|
^BrainTwisters .. ^BrainUntwisted
|
|
^SettingUp
|
|
^ColumnForAction
|
|
^SplitValues ... ^UnsplitValues
|
|
^OneOrZeroElements
|
|
^ManyListRows ... ^ReduceColumns ... ^ReduceListWithArgs .. ^ReduceListWithSubset
|
|
|
|
!2 Still to organise
|
|
* Redundancy adds noise and slows evolution
|
|
* Clear intent enables communication
|
|
* Organisation enables communication
|
|
* Mixed messages are missed: say one thing clearly
|
|
* Premature or unnecessary commitment (tests carry into new technology)
|
|
^CombineTables ... two tables better as one
|
|
^RedundantResultColumn ... don't say it twice ^RedundantResultColumnRemoved
|
|
^RedundantColumnValues ... all the same values in a given column ^RedundantColumnValuesFixed1 and ^RedundantColumnValuesFixed2
|
|
^RedundantAdd ... repeated value shows
|
|
^LotsOfActions ... can be expressed more succinctly
|
|
^IntentUnclear ... so comments and clear examples are needed
|
|
^TestSubset ... to focus on essentials and reduce dependencies
|
|
^TestSelectedSubset ... select with arguments to focus
|
|
^OrganiseTable ... so it's easier to see what the main cases are, and which are missing
|
|
^SplitTableThatMixesTests ... for orthogonal concerns
|
|
^SplitBusinessRulesAndValidation ... a specific orthogonality issue
|
|
^LotsOfSimilarTests ... show that a more abstract business rule needs to emerge
|
|
^LongSetUp ... so compact it with ''!-EntryFixture-!''
|
|
^LotsOfSimilarSetUp and ^LotsMoreSimilar ... so share it ^ShareIt
|
|
^SetUpThroughActions ... better to turn it into entry setup
|
|
^TestThroughUi ... so back off and test UI separately
|
|
^TestUi ... again, avoid unnecessary commitment to particular technology
|
|
^UnclearWorkFlowPhases ... clearly separate setup, change state, and check
|
|
^HardToFollowChanges ... show screen dump, HTML when things go wrong
|
|
^TextIsAwkward ... use graphics
|
|
^MediateChangeWithFixture ... so many application changes don't break the tests
|