Come si gestisce la visibilità delle funzioni e il test delle unità in Haskell?Privacy delle funzioni e test delle unità Haskell
Se si esportano tutte le funzioni in un modulo in modo che i test delle unità possano accedervi, si rischiano altre persone che chiamano funzioni che non dovrebbero essere nell'API pubblica.
Ho pensato di utilizzare {-# LANGUAGE CPP #-}
e poi che circonda le esportazioni con un #ifdef
:
{-# LANGUAGE CPP #-}
module SomeModule
#ifndef TESTING
(export1
, export2
)
#endif
where
C'è un modo migliore?
Possibile duplicato di https://stackoverflow.com/questions/34571/how-do-i-test-a-class-that-has-private-methods-fields-or-nernerclasses – Raedwald