diff --git a/android/fixture.go b/android/fixture.go
index edad2c1..67c4c92 100644
--- a/android/fixture.go
+++ b/android/fixture.go
@@ -183,12 +183,12 @@
 	// Create a Fixture.
 	Fixture(t *testing.T, preparers ...FixturePreparer) Fixture
 
-	// SetErrorHandler creates a new FixtureFactory that will use the supplied error handler to check
-	// the errors (may be 0) reported by the test.
+	// ExtendWithErrorHandler creates a new FixtureFactory that will use the supplied error handler
+	// to check the errors (may be 0) reported by the test.
 	//
 	// The default handlers is FixtureExpectsNoErrors which will fail the go test immediately if any
 	// errors are reported.
-	SetErrorHandler(errorHandler FixtureErrorHandler) FixtureFactory
+	ExtendWithErrorHandler(errorHandler FixtureErrorHandler) FixtureFactory
 
 	// Run the test, checking any errors reported and returning a TestResult instance.
 	//
@@ -640,7 +640,7 @@
 	return fixture
 }
 
-func (f *fixtureFactory) SetErrorHandler(errorHandler FixtureErrorHandler) FixtureFactory {
+func (f *fixtureFactory) ExtendWithErrorHandler(errorHandler FixtureErrorHandler) FixtureFactory {
 	newFactory := &fixtureFactory{}
 	*newFactory = *f
 	newFactory.errorHandler = errorHandler
diff --git a/android/visibility_test.go b/android/visibility_test.go
index b147138..eb4071e 100644
--- a/android/visibility_test.go
+++ b/android/visibility_test.go
@@ -1162,7 +1162,7 @@
 				// Add additional files to the mock filesystem
 				test.fs.AddToFixture(),
 			).
-				SetErrorHandler(FixtureExpectsAllErrorsToMatchAPattern(test.expectedErrors)).
+				ExtendWithErrorHandler(FixtureExpectsAllErrorsToMatchAPattern(test.expectedErrors)).
 				RunTest(t)
 
 			if test.effectiveVisibility != nil {
