Skip to content

Commit f15088d

Browse files
garabaisDagger Team
authored andcommitted
Refactor legacy Dagger tests to prefer assertThrows to try/fail.
This change updates legacy tests in the Dagger project to use `org.junit.Assert.assertThrows` instead of the `try { ... fail(); } catch (...) { ... }` pattern. RELNOTES=Refactor legacy tests to use assertThrows instead of try/fail. PiperOrigin-RevId: 903943435
1 parent 4c81e94 commit f15088d

23 files changed

Lines changed: 194 additions & 372 deletions

dagger-android-support/test/javatests/dagger/android/support/AndroidSupportInjectionTest.java

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package dagger.android.support;
1818

1919
import static com.google.common.truth.Truth.assertThat;
20-
import static org.junit.Assert.fail;
20+
import static org.junit.Assert.assertThrows;
2121

2222
import android.app.Application;
2323
import android.os.Build;
@@ -40,12 +40,8 @@ public void injectFragment_simpleApplication() {
4040
Fragment fragment = new Fragment();
4141
startFragment(fragment);
4242

43-
try {
44-
AndroidSupportInjection.inject(fragment);
45-
fail();
46-
} catch (Exception e) {
47-
assertThat(e).hasMessageThat().contains("No injector was found");
48-
}
43+
Exception e = assertThrows(Exception.class, () -> AndroidSupportInjection.inject(fragment));
44+
assertThat(e).hasMessageThat().contains("No injector was found");
4945
}
5046

5147
private static class ApplicationReturnsNull extends Application
@@ -62,22 +58,15 @@ public void fragmentInjector_returnsNull() {
6258
Fragment fragment = new Fragment();
6359
startFragment(fragment);
6460

65-
try {
66-
AndroidSupportInjection.inject(fragment);
67-
fail();
68-
} catch (Exception e) {
69-
assertThat(e).hasMessageThat().contains("androidInjector() returned null");
70-
}
61+
Exception e = assertThrows(Exception.class, () -> AndroidSupportInjection.inject(fragment));
62+
assertThat(e).hasMessageThat().contains("androidInjector() returned null");
7163
}
7264

7365
@Test
7466
public void injectFragment_nullInput() {
75-
try {
76-
AndroidSupportInjection.inject(null);
77-
fail();
78-
} catch (NullPointerException e) {
79-
assertThat(e).hasMessageThat().contains("fragment");
80-
}
67+
NullPointerException e =
68+
assertThrows(NullPointerException.class, () -> AndroidSupportInjection.inject(null));
69+
assertThat(e).hasMessageThat().contains("fragment");
8170
}
8271

8372
void startFragment(Fragment fragment) {

dagger-android/test/javatests/dagger/android/AndroidInjectionTest.java

Lines changed: 17 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package dagger.android;
1818

1919
import static com.google.common.truth.Truth.assertThat;
20-
import static org.junit.Assert.fail;
20+
import static org.junit.Assert.assertThrows;
2121
import static org.robolectric.annotation.LooperMode.Mode.LEGACY;
2222

2323
import android.app.Activity;
@@ -119,14 +119,10 @@ public void fragmentInjectedByParentFragment() {
119119
public void injectActivity_applicationDoesntImplementHasAndroidInjector() {
120120
Activity activity = Robolectric.setupActivity(Activity.class);
121121

122-
try {
123-
AndroidInjection.inject(activity);
124-
fail();
125-
} catch (Exception e) {
126-
assertThat(e)
127-
.hasMessageThat()
128-
.contains("Application does not implement dagger.android.HasAndroidInjector");
129-
}
122+
Exception e = assertThrows(Exception.class, () -> AndroidInjection.inject(activity));
123+
assertThat(e)
124+
.hasMessageThat()
125+
.contains("Application does not implement dagger.android.HasAndroidInjector");
130126
}
131127

132128
@Test
@@ -135,12 +131,8 @@ public void injectFragment_hasFragmentInjectorNotFound() {
135131
Activity activity = Robolectric.setupActivity(Activity.class);
136132
activity.getFragmentManager().beginTransaction().add(fragment, null).commit();
137133

138-
try {
139-
AndroidInjection.inject(fragment);
140-
fail();
141-
} catch (Exception e) {
142-
assertThat(e).hasMessageThat().contains("No injector was found");
143-
}
134+
Exception e = assertThrows(Exception.class, () -> AndroidInjection.inject(fragment));
135+
assertThat(e).hasMessageThat().contains("No injector was found");
144136
}
145137

146138
private static class ApplicationReturnsNull extends Application implements HasAndroidInjector {
@@ -155,12 +147,8 @@ public AndroidInjector<Object> androidInjector() {
155147
public void activityInjector_returnsNull() {
156148
Activity activity = Robolectric.setupActivity(Activity.class);
157149

158-
try {
159-
AndroidInjection.inject(activity);
160-
fail();
161-
} catch (Exception e) {
162-
assertThat(e).hasMessageThat().contains("androidInjector() returned null");
163-
}
150+
Exception e = assertThrows(Exception.class, () -> AndroidInjection.inject(activity));
151+
assertThat(e).hasMessageThat().contains("androidInjector() returned null");
164152
}
165153

166154
@Test
@@ -170,31 +158,21 @@ public void fragmentInjector_returnsNull() {
170158
Activity activity = Robolectric.setupActivity(Activity.class);
171159
activity.getFragmentManager().beginTransaction().add(fragment, null).commit();
172160

173-
try {
174-
AndroidInjection.inject(fragment);
175-
fail();
176-
} catch (Exception e) {
177-
assertThat(e).hasMessageThat().contains("androidInjector() returned null");
178-
}
161+
Exception e = assertThrows(Exception.class, () -> AndroidInjection.inject(fragment));
162+
assertThat(e).hasMessageThat().contains("androidInjector() returned null");
179163
}
180164

181165
@Test
182166
public void injectActivity_nullInput() {
183-
try {
184-
AndroidInjection.inject((Activity) null);
185-
fail();
186-
} catch (NullPointerException e) {
187-
assertThat(e).hasMessageThat().contains("activity");
188-
}
167+
NullPointerException e =
168+
assertThrows(NullPointerException.class, () -> AndroidInjection.inject((Activity) null));
169+
assertThat(e).hasMessageThat().contains("activity");
189170
}
190171

191172
@Test
192173
public void injectFragment_nullInput() {
193-
try {
194-
AndroidInjection.inject((Fragment) null);
195-
fail();
196-
} catch (NullPointerException e) {
197-
assertThat(e).hasMessageThat().contains("fragment");
198-
}
174+
NullPointerException e =
175+
assertThrows(NullPointerException.class, () -> AndroidInjection.inject((Fragment) null));
176+
assertThat(e).hasMessageThat().contains("fragment");
199177
}
200178
}

dagger-android/test/javatests/dagger/android/DispatchingAndroidInjectorTest.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package dagger.android;
1818

1919
import static com.google.common.truth.Truth.assertThat;
20-
import static org.junit.Assert.fail;
20+
import static org.junit.Assert.assertThrows;
2121

2222
import android.app.Activity;
2323
import android.os.Build;
@@ -86,11 +86,8 @@ public void throwsIfFactoryCreateReturnsNull() {
8686
ImmutableMap.of(FooActivity.class, () -> null), ImmutableMap.of());
8787
FooActivity activity = Robolectric.setupActivity(FooActivity.class);
8888

89-
try {
90-
dispatchingAndroidInjector.maybeInject(activity);
91-
fail("Expected NullPointerException");
92-
} catch (NullPointerException expected) {
93-
}
89+
assertThrows(
90+
NullPointerException.class, () -> dispatchingAndroidInjector.maybeInject(activity));
9491
}
9592

9693
@Test
@@ -100,11 +97,9 @@ public void throwsIfClassMismatched() {
10097
ImmutableMap.of(FooActivity.class, BarInjector.Factory::new), ImmutableMap.of());
10198
FooActivity activity = Robolectric.setupActivity(FooActivity.class);
10299

103-
try {
104-
dispatchingAndroidInjector.maybeInject(activity);
105-
fail("Expected InvalidInjectorBindingException");
106-
} catch (InvalidInjectorBindingException expected) {
107-
}
100+
assertThrows(
101+
InvalidInjectorBindingException.class,
102+
() -> dispatchingAndroidInjector.maybeInject(activity));
108103
}
109104

110105
private static <T> DispatchingAndroidInjector<T> newDispatchingAndroidInjector(

dagger-runtime/test/javatests/dagger/internal/DoubleCheckTest.java

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package dagger.internal;
1818

1919
import static com.google.common.truth.Truth.assertThat;
20-
import static org.junit.Assert.fail;
20+
import static org.junit.Assert.assertThrows;
2121

2222
import com.google.common.collect.Lists;
2323
import com.google.common.collect.Sets;
@@ -40,20 +40,12 @@
4040
public class DoubleCheckTest {
4141
@Test
4242
public void provider_nullPointerException() {
43-
try {
44-
DoubleCheck.provider(null);
45-
fail();
46-
} catch (NullPointerException expected) {
47-
}
43+
assertThrows(NullPointerException.class, () -> DoubleCheck.provider(null));
4844
}
4945

5046
@Test
5147
public void lazy_nullPointerException() {
52-
try {
53-
DoubleCheck.lazy(null);
54-
fail();
55-
} catch (NullPointerException expected) {
56-
}
48+
assertThrows(NullPointerException.class, () -> DoubleCheck.lazy(null));
5749
}
5850

5951
private static final Provider<Object> DOUBLE_CHECK_OBJECT_PROVIDER =
@@ -123,10 +115,7 @@ public Object get() {
123115
new AtomicReference<>();
124116
Provider<Object> doubleCheck = DoubleCheck.provider(() -> doubleCheckReference.get().get());
125117
doubleCheckReference.set(doubleCheck);
126-
try {
127-
doubleCheck.get();
128-
fail();
129-
} catch (StackOverflowError expected) {}
118+
assertThrows(StackOverflowError.class, () -> doubleCheck.get());
130119
}
131120

132121
@Test public void reentranceReturningSameInstance() {
@@ -155,10 +144,7 @@ public Object get() {
155144
return new Object();
156145
});
157146
doubleCheckReference.set(doubleCheck);
158-
try {
159-
doubleCheck.get();
160-
fail();
161-
} catch (IllegalStateException expected) {}
147+
assertThrows(IllegalStateException.class, () -> doubleCheck.get());
162148
}
163149

164150
@Test

dagger-runtime/test/javatests/dagger/internal/InstanceFactoryTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package dagger.internal;
1818

1919
import static com.google.common.truth.Truth.assertThat;
20-
import static org.junit.Assert.fail;
20+
import static org.junit.Assert.assertThrows;
2121

2222
import org.junit.Test;
2323
import org.junit.runner.RunWith;
@@ -34,10 +34,6 @@ public final class InstanceFactoryTest {
3434
}
3535

3636
@Test public void create_throwsNullPointerException() {
37-
try {
38-
InstanceFactory.create(null);
39-
fail();
40-
} catch (NullPointerException expected) {
41-
}
37+
assertThrows(NullPointerException.class, () -> InstanceFactory.create(null));
4238
}
4339
}

dagger-runtime/test/javatests/dagger/internal/SetBuilderTest.java

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package dagger.internal;
1818

19-
import static org.junit.Assert.fail;
19+
import static org.junit.Assert.assertThrows;
2020

2121
import java.util.Arrays;
2222
import org.junit.Before;
@@ -35,28 +35,17 @@ public void setUp() {
3535

3636
@Test
3737
public void addNull() {
38-
try {
39-
setBuilder.add(null);
40-
fail();
41-
} catch (NullPointerException expected) {
42-
}
38+
assertThrows(NullPointerException.class, () -> setBuilder.add(null));
4339
}
4440

4541
@Test
4642
public void addNullCollection() {
47-
try {
48-
setBuilder.addAll(null);
49-
fail();
50-
} catch (NullPointerException expected) {
51-
}
43+
assertThrows(NullPointerException.class, () -> setBuilder.addAll(null));
5244
}
5345

5446
@Test
5547
public void addNullElement() {
56-
try {
57-
setBuilder.addAll(Arrays.asList("hello", null, "world"));
58-
fail();
59-
} catch (NullPointerException expected) {
60-
}
48+
assertThrows(
49+
NullPointerException.class, () -> setBuilder.addAll(Arrays.asList("hello", null, "world")));
6150
}
6251
}

javatests/dagger/functional/builder/BuilderTest.java

Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import static com.google.common.truth.Truth.assertThat;
2020
import static java.lang.annotation.RetentionPolicy.RUNTIME;
21-
import static org.junit.Assert.fail;
21+
import static org.junit.Assert.assertThrows;
2222

2323
import dagger.Component;
2424
import dagger.Module;
@@ -491,11 +491,7 @@ public void interfaceBuilder() {
491491
DaggerBuilderTest_TestComponentWithBuilderInterface.builder();
492492

493493
// Make sure things fail if we don't set our required modules.
494-
try {
495-
builder.build();
496-
fail();
497-
} catch (IllegalStateException expected) {
498-
}
494+
assertThrows(IllegalStateException.class, () -> builder.build());
499495

500496
builder
501497
.intModule(new IntModuleIncludingDoubleAndFloat(1))
@@ -518,11 +514,7 @@ public void abstractClassBuilder() {
518514
TestComponentWithBuilderAbstractClass.builder();
519515

520516
// Make sure things fail if we don't set our required modules.
521-
try {
522-
builder.build();
523-
fail();
524-
} catch (IllegalStateException expected) {
525-
}
517+
assertThrows(IllegalStateException.class, () -> builder.build());
526518

527519
builder
528520
.intModule(new IntModuleIncludingDoubleAndFloat(1))
@@ -545,11 +537,7 @@ public void interfaceGenericBuilder() {
545537
DaggerBuilderTest_TestComponentWithGenericBuilderInterface.builder();
546538

547539
// Make sure things fail if we don't set our required modules.
548-
try {
549-
builder.build();
550-
fail();
551-
} catch (IllegalStateException expected) {
552-
}
540+
assertThrows(IllegalStateException.class, () -> builder.build());
553541

554542
builder
555543
.setM2(new IntModuleIncludingDoubleAndFloat(1))
@@ -572,11 +560,7 @@ public void abstractClassGenericBuilder() {
572560
DaggerBuilderTest_TestComponentWithGenericBuilderAbstractClass.builder();
573561

574562
// Make sure things fail if we don't set our required modules.
575-
try {
576-
builder.build();
577-
fail();
578-
} catch (IllegalStateException expected) {
579-
}
563+
assertThrows(IllegalStateException.class, () -> builder.build());
580564

581565
builder
582566
.setM2(new IntModuleIncludingDoubleAndFloat(1))
@@ -597,11 +581,7 @@ public void abstractClassGenericBuilder() {
597581
public void subcomponents_interface() {
598582
ParentComponent parent = DaggerBuilderTest_ParentComponent.create();
599583
TestChildComponentWithBuilderInterface.Builder builder1 = parent.childInterfaceBuilder();
600-
try {
601-
builder1.build();
602-
fail();
603-
} catch (IllegalStateException expected) {
604-
}
584+
assertThrows(IllegalStateException.class, () -> builder1.build());
605585

606586
builder1
607587
.setM2(new IntModuleIncludingDoubleAndFloat(1))
@@ -622,11 +602,7 @@ public void subcomponents_abstractclass() {
622602
ParentComponent parent = DaggerBuilderTest_ParentComponent.create();
623603
TestChildComponentWithBuilderAbstractClass.Builder builder2 =
624604
parent.childAbstractClassBuilder();
625-
try {
626-
builder2.build();
627-
fail();
628-
} catch (IllegalStateException expected) {
629-
}
605+
assertThrows(IllegalStateException.class, () -> builder2.build());
630606

631607
builder2
632608
.setM2(new IntModuleIncludingDoubleAndFloat(10))

0 commit comments

Comments
 (0)