### Question:
ExecutableDifferenceReporter implements Reporter { Process startProcess(String... cmdParts) throws IOException { return runProcess(cmdParts); } ExecutableDifferenceReporter(String approvalCommand, String diffCommand, @Nullable String executable); @Override void notTheSame(byte[] oldValue, File fileForVerification, byte[] newValue, File fileForApproval); @Override void approveNew(byte[] value, File approvalDestination, File fileForVerification); @Override boolean canApprove(File fileForApproval); static Process runProcess(String... cmdParts);  }### Answer:
@Test(expected = IOException.class) public void shouldThrowAnExceptionIfExecutableIsNotFound() throws Exception { Process process = executableDifferenceReporter.startProcess("unexistingcommand", "-invalid-flag"); process.waitFor(); }