テストの時だけ公開したい関数

モジュールを書いていて、ユニットテストの時はテストしたいので公開して、それ以外の普通の時は公開しない関数を書きたいと思った。
C++あまりよく知らないのだけど、テストの時だけfriendなprivate関数というか。
で、以下のような感じのコードを思いついたのだけど、もっとおしゃれな感じ(?)な書き方ないのかなーと思った。

function aaa() {
  console.log('aaa');
}

function bbb() {
  console.log('bbb');
}

module.exports =
    (process.env.NODE_ENV === 'test') ? {
      aaa: aaa,
      bbb: bbb
    } : {
      aaa: aaa
    };
$ node
> a.aaa
[Function: aaa]
> a.bbb
undefined
$ NODE_ENV=test node
> a.aaa
[Function: aaa]
> a.bbb
[Function: bbb]

まあ、これが一番わかりやすいのかなあ。


で、テストのときは

package.json
"scripts": {
  "test": "NODE_ENV=test ./node_modules/.bin/mocha"
}

とか書いておいて、

$ npm test

で普段は公開してない関数をテストする、というかなんというか。