In my Clojure codebase, I have defined several protocols and several defrecords. I am using clojure.test to unit test the concrete functions defined within my defrecords.

For example, let's say I have the following source files:

In src/foo/protocols.clj:

```
(ns foo.protocols)

(defprotocol RequestAcceptability
  (desired-accepted-charset [this]))

```

In src/foo/types.clj:

```
(ns foo.types
  (:use [foo.protocols :only [RequestAcceptability desired-accepted-charset]])

(defrecord RequestProcessor
  [field-1 field-2]
  RequestAcceptability
  (desired-accepted-charset [this]
    ...implementation here...))

```

In test/foo/types\_test.clj:

```
(ns foo.types-test
  (:use [clojure.test])
  (:use [foo.protocols :only [RequestAcceptability desired-accepted-charset]])
  (:import [foo.types RequestProcessor]))

(deftest test-desired-accepted-charset_1
  ...test code here...)

```

I am using Clojure 1.4, Leiningen 2, nrepl within Emacs. 

The annoyance I am facing is that when I go to run my unit tests (e.g., using C-c C-, sequence), I get a **ClassNotFoundException: foo.types.RequestProcessor**. To get around this, I'm doing the manual work of evaluating, individually, each of my protocol and defrecord forms. I.e., I'll navigate over to my protocols.clj and evaluate (C-M-x key sequence for nrepl) my defprotocol form; and then I'll navigate to my types.clj and evaluate my defrecord form; and then finally I'm able to successfully run my unit tests w/out getting the ClassNotFoundException.

Of course, in my real code base, I have to do this for all my protocols and defrecords, and so it is very tedious and time consuming. Also, if I simply drop to a shell and do **lein test**, I get the same ClassNotFoundException.

Is there a better way?

Thank you for your time and help.