When running coverage tests, I'm in the habit of running them on my unit tests in addition to the code under test. This has allowed me to catch code in unit tests that I thought was behaving a certain way but turned out not to.
But EMMA won't let me do that. Consider code like this:
wordsManager = new WordsManager(mDataAccessor, new PriorityWordsFilter(3, 2, true));
assertIsTrue(wordsManager.getNotificationMode() == WordsManager.NOTIFICATION_MODE_NO_CHANGE);
assertNotNull(wordsManager.getPriorityWords());
assertIsTrue(wordsManager.getPriorityWords().length == 0);
wordsManager.updatePriorityWordsFilter(new PriorityWordsFilter(3, 2, true));
assertIsTrue(wordsManager.getNotificationMode() == WordsManager.NOTIFICATION_MODE_NO_CHANGE);
assertNotNull(wordsManager.getPriorityWords());
assertIsTrue(wordsManager.getPriorityWords().length == 0);
Each of the lines with an equality test is marked yellow, not covered, by EMMA. But of *course* the expressions are only going to evaluated to true or to false--that's the whole point of passing them into the asserts. That's how JUnit works!
Please close this. I meant to file it as a bug, and have now done so.