Definitely! Personally I hate throwing NPEs. NPE can be thrown because you've forgotten to inject sth and your test (if you test for an NPE exception to be thrown) will pass.
 Agreed 

Checks.checkNotNull should emit IllegalArgumentException instead of NPE
Checks.checkNotNull emits NPE. I think it is better to emit IAE, because:
- IAE is more specific whereas NPE is more generic. Specific exception is easier to test.
- Specific exception gives better experience for users, NPE is often assumed to be developer error.

This change is not backwards compatible.

@bric3, thoughts?

src/main/java/org/mockito/internal/util/Checks.java
src/main/java/org/mockito/internal/util/Checks.java
src/test/java/org/mockito/internal/configuration/MockInjectionTest.java
diff --git a/src/main/java/org/mockito/internal/util/Checks.java b/src/main/java/org/mockito/internal/util/Checks.java
index 00ed8a8f22..acb8e914b0 100644
--- a/src/main/java/org/mockito/internal/util/Checks.java
+++ b/src/main/java/org/mockito/internal/util/Checks.java
@@ -12,7 +12,7 @@ public class Checks {
 
     public static <T> T checkNotNull(T value, String checkedValue) {
         if(value == null) {
-            throw new NullPointerException(checkedValue + " should not be null");
+            throw new IllegalArgumentException(checkedValue + " should not be null");
         }
         return value;
     }

diff --git a/src/test/java/org/mockito/internal/configuration/MockInjectionTest.java b/src/test/java/org/mockito/internal/configuration/MockInjectionTest.java
index ed20c9ccc2..4abb528042 100644
--- a/src/test/java/org/mockito/internal/configuration/MockInjectionTest.java
+++ b/src/test/java/org/mockito/internal/configuration/MockInjectionTest.java
@@ -29,22 +29,22 @@ public void reset() throws Exception {
         withoutConstructor = null;
     }
 
-    @Test(expected = NullPointerException.class)
+    @Test(expected = IllegalArgumentException.class)
     public void should_not_allow_null_on_field() {
         MockInjection.onField((Field) null, this);
     }
 
-    @Test(expected = NullPointerException.class)
+    @Test(expected = IllegalArgumentException.class)
     public void should_not_allow_null_on_fields() {
         MockInjection.onFields((Set<Field>) null, this);
     }
 
-    @Test(expected = NullPointerException.class)
+    @Test(expected = IllegalArgumentException.class)
     public void should_not_allow_null_on_instance_owning_the_field() throws Exception {
         MockInjection.onField(field("withConstructor"), null);
     }
 
-    @Test(expected = NullPointerException.class)
+    @Test(expected = IllegalArgumentException.class)
     public void should_not_allow_null_on_mocks() throws Exception {
         MockInjection.onField(field("withConstructor"), this).withMocks(null);
     }
