Skip to content

Commit a0e1190

Browse files
mateoguzmanafacebook-github-bot
authored andcommitted
Clean up unnecessary test setup for Android tests (#52471)
Summary: This came out of #52457 as I had to fix some tests and realised there is a lot of setup that could be shadow and other things that are not needed at all. ## Changelog: [INTERNAL] - Clean up unnecessary test setup for Android tests Pull Request resolved: #52471 Test Plan: ```sh yarn test-android ``` Reviewed By: cortinico Differential Revision: D77926887 Pulled By: javache fbshipit-source-id: ff493d87633fcb4c4194b50cd374ad2e8acda974
1 parent 120a417 commit a0e1190

13 files changed

Lines changed: 41 additions & 166 deletions

File tree

packages/react-native/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.kt

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,22 @@ import android.view.WindowManager
1818
import com.facebook.react.bridge.Arguments
1919
import com.facebook.react.bridge.BridgeReactContext
2020
import com.facebook.react.bridge.CatalystInstance
21-
import com.facebook.react.bridge.JavaOnlyArray
2221
import com.facebook.react.bridge.JavaOnlyMap
2322
import com.facebook.react.bridge.ReactTestHelper
2423
import com.facebook.react.bridge.WritableArray
25-
import com.facebook.react.bridge.WritableMap
2624
import com.facebook.react.common.SystemClock
2725
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests
2826
import com.facebook.react.uimanager.DisplayMetricsHolder
2927
import com.facebook.react.uimanager.UIManagerModule
3028
import com.facebook.react.uimanager.events.EventDispatcher
3129
import com.facebook.react.uimanager.events.RCTEventEmitter
3230
import com.facebook.react.uimanager.events.TouchEvent
31+
import com.facebook.testutils.shadows.ShadowArguments
3332
import java.util.Date
3433
import org.assertj.core.api.Assertions.*
35-
import org.junit.After
3634
import org.junit.Before
3735
import org.junit.Test
3836
import org.junit.runner.RunWith
39-
import org.mockito.MockedStatic
40-
import org.mockito.Mockito.mockStatic
4137
import org.mockito.kotlin.KArgumentCaptor
4238
import org.mockito.kotlin.any
4339
import org.mockito.kotlin.argumentCaptor
@@ -52,16 +48,15 @@ import org.mockito.kotlin.whenever
5248
import org.robolectric.Robolectric
5349
import org.robolectric.RobolectricTestRunner
5450
import org.robolectric.RuntimeEnvironment
51+
import org.robolectric.annotation.Config
5552

53+
@Config(shadows = [ShadowArguments::class])
5654
@RunWith(RobolectricTestRunner::class)
5755
class RootViewTest {
5856

5957
private lateinit var reactContext: BridgeReactContext
6058
private lateinit var catalystInstanceMock: CatalystInstance
6159

62-
private lateinit var arguments: MockedStatic<Arguments>
63-
private lateinit var systemClock: MockedStatic<SystemClock>
64-
6560
private lateinit var downEventCaptor: KArgumentCaptor<TouchEvent>
6661
private lateinit var downActionTouchesArgCaptor: KArgumentCaptor<WritableArray>
6762

@@ -72,14 +67,6 @@ class RootViewTest {
7267
fun setUp() {
7368
ReactNativeFeatureFlagsForTests.setUp()
7469

75-
arguments = mockStatic(Arguments::class.java)
76-
arguments.`when`<WritableArray> { Arguments.createArray() }.thenAnswer { JavaOnlyArray() }
77-
arguments.`when`<WritableMap> { Arguments.createMap() }.thenAnswer { JavaOnlyMap() }
78-
79-
val ts = SystemClock.uptimeMillis()
80-
systemClock = mockStatic(SystemClock::class.java)
81-
systemClock.`when`<Long> { SystemClock.uptimeMillis() }.thenReturn(ts)
82-
8370
catalystInstanceMock = ReactTestHelper.createMockCatalystInstance()
8471
reactContext = spy(BridgeReactContext(RuntimeEnvironment.getApplication()))
8572
reactContext.initializeWithInstance(catalystInstanceMock)
@@ -96,12 +83,6 @@ class RootViewTest {
9683
upActionTouchesArgCaptor = argumentCaptor()
9784
}
9885

99-
@After
100-
fun tearDown() {
101-
systemClock.close()
102-
arguments.close()
103-
}
104-
10586
@Test
10687
fun testTouchEmitter() {
10788
val instanceManager: ReactInstanceManager = mock()

packages/react-native/ReactAndroid/src/test/java/com/facebook/react/animated/NativeAnimatedNodeTraversalTest.kt

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,27 @@
1010
package com.facebook.react.animated
1111

1212
import android.annotation.SuppressLint
13-
import com.facebook.react.bridge.Arguments
1413
import com.facebook.react.bridge.Callback
1514
import com.facebook.react.bridge.CatalystInstance
1615
import com.facebook.react.bridge.JavaOnlyArray
1716
import com.facebook.react.bridge.JavaOnlyMap
1817
import com.facebook.react.bridge.ReactApplicationContext
1918
import com.facebook.react.bridge.ReadableMap
20-
import com.facebook.react.bridge.WritableArray
21-
import com.facebook.react.bridge.WritableMap
2219
import com.facebook.react.uimanager.UIManagerModule
2320
import com.facebook.react.uimanager.events.Event
2421
import com.facebook.react.uimanager.events.EventDispatcher
2522
import com.facebook.react.uimanager.events.RCTEventEmitter
23+
import com.facebook.testutils.shadows.ShadowArguments
2624
import kotlin.collections.Map
2725
import kotlin.math.abs
2826
import org.assertj.core.api.Assertions.assertThat
29-
import org.junit.After
3027
import org.junit.Before
3128
import org.junit.Test
3229
import org.junit.runner.RunWith
3330
import org.mockito.ArgumentCaptor
3431
import org.mockito.ArgumentMatchers.any
3532
import org.mockito.ArgumentMatchers.anyInt
3633
import org.mockito.ArgumentMatchers.eq
37-
import org.mockito.MockedStatic
38-
import org.mockito.Mockito.mockStatic
3934
import org.mockito.kotlin.atMost
4035
import org.mockito.kotlin.mock
4136
import org.mockito.kotlin.reset
@@ -44,8 +39,10 @@ import org.mockito.kotlin.verify
4439
import org.mockito.kotlin.verifyNoMoreInteractions
4540
import org.mockito.kotlin.whenever
4641
import org.robolectric.RobolectricTestRunner
42+
import org.robolectric.annotation.Config
4743

4844
/** Tests the animated nodes graph traversal algorithm from {@link NativeAnimatedNodesManager}. */
45+
@Config(shadows = [ShadowArguments::class])
4946
@RunWith(RobolectricTestRunner::class)
5047
class NativeAnimatedNodeTraversalTest {
5148

@@ -55,7 +52,6 @@ class NativeAnimatedNodeTraversalTest {
5552
private lateinit var uiManagerMock: UIManagerModule
5653
private lateinit var eventDispatcherMock: EventDispatcher
5754
private lateinit var nativeAnimatedNodesManager: NativeAnimatedNodesManager
58-
private lateinit var arguments: MockedStatic<Arguments>
5955

6056
private fun nextFrameTime(): Long {
6157
frameTimeNanos += FRAME_LEN_NANOS
@@ -64,10 +60,6 @@ class NativeAnimatedNodeTraversalTest {
6460

6561
@Before
6662
fun setUp() {
67-
arguments = mockStatic(Arguments::class.java)
68-
arguments.`when`<WritableArray> { Arguments.createArray() }.thenAnswer { JavaOnlyArray() }
69-
arguments.`when`<WritableMap> { Arguments.createMap() }.thenAnswer { JavaOnlyMap() }
70-
7163
frameTimeNanos = INITIAL_FRAME_TIME_NANOS
7264

7365
reactApplicationContextMock = mock<ReactApplicationContext>()
@@ -113,11 +105,6 @@ class NativeAnimatedNodeTraversalTest {
113105
nativeAnimatedNodesManager = NativeAnimatedNodesManager(reactApplicationContextMock)
114106
}
115107

116-
@After
117-
fun tearDown() {
118-
arguments.close()
119-
}
120-
121108
/**
122109
* Generates a simple animated nodes graph and attaches the props node to a given {@param viewTag}
123110
* Parameter {@param opacity} is used as a initial value for the "opacity" attribute.

packages/react-native/ReactAndroid/src/test/java/com/facebook/react/fabric/events/TouchEventDispatchTest.kt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,10 @@ import android.util.DisplayMetrics
1111
import android.view.MotionEvent
1212
import android.view.MotionEvent.PointerCoords
1313
import android.view.MotionEvent.PointerProperties
14-
import com.facebook.react.bridge.Arguments
1514
import com.facebook.react.bridge.JavaOnlyArray
1615
import com.facebook.react.bridge.JavaOnlyMap
1716
import com.facebook.react.bridge.ReactTestHelper
1817
import com.facebook.react.bridge.ReadableMap
19-
import com.facebook.react.bridge.WritableArray
2018
import com.facebook.react.bridge.WritableMap
2119
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests
2220
import com.facebook.react.modules.core.ReactChoreographer
@@ -26,6 +24,7 @@ import com.facebook.react.uimanager.events.FabricEventDispatcher
2624
import com.facebook.react.uimanager.events.TouchEvent
2725
import com.facebook.react.uimanager.events.TouchEventCoalescingKeyHelper
2826
import com.facebook.react.uimanager.events.TouchEventType
27+
import com.facebook.testutils.shadows.ShadowArguments
2928
import com.facebook.testutils.shadows.ShadowSoLoader
3029
import org.assertj.core.api.Assertions.assertThat
3130
import org.junit.After
@@ -34,16 +33,14 @@ import org.junit.Test
3433
import org.junit.runner.RunWith
3534
import org.mockito.ArgumentCaptor
3635
import org.mockito.ArgumentMatchers.*
37-
import org.mockito.MockedStatic
38-
import org.mockito.Mockito.mockStatic
3936
import org.mockito.kotlin.mock
4037
import org.mockito.kotlin.times
4138
import org.mockito.kotlin.verify
4239
import org.robolectric.RobolectricTestRunner
4340
import org.robolectric.annotation.Config
4441

4542
@RunWith(RobolectricTestRunner::class)
46-
@Config(shadows = [ShadowSoLoader::class])
43+
@Config(shadows = [ShadowSoLoader::class, ShadowArguments::class])
4744
class TouchEventDispatchTest {
4845
private val touchEventCoalescingKeyHelper = TouchEventCoalescingKeyHelper()
4946

@@ -460,16 +457,12 @@ class TouchEventDispatchTest {
460457

461458
private lateinit var eventDispatcher: EventDispatcher
462459
private lateinit var eventEmitter: FabricEventEmitter
463-
private lateinit var arguments: MockedStatic<Arguments>
464460
private var reactChoreographerOriginal: ReactChoreographer? = null
465461

466462
@Before
467463
fun setUp() {
468464
ReactNativeFeatureFlagsForTests.setUp()
469465

470-
arguments = mockStatic(Arguments::class.java)
471-
arguments.`when`<WritableArray> { Arguments.createArray() }.thenAnswer { JavaOnlyArray() }
472-
arguments.`when`<WritableMap> { Arguments.createMap() }.thenAnswer { JavaOnlyMap() }
473466
val metrics = DisplayMetrics()
474467
metrics.xdpi = 1f
475468
metrics.ydpi = 1f
@@ -488,7 +481,6 @@ class TouchEventDispatchTest {
488481

489482
@After
490483
fun tearDown() {
491-
arguments.close()
492484
ReactChoreographer.overrideInstanceForTest(reactChoreographerOriginal)
493485
}
494486

packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/appstate/AppStateModuleTest.kt

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,49 +9,39 @@ package com.facebook.react.modules.appstate
99

1010
import com.facebook.react.bridge.Arguments
1111
import com.facebook.react.bridge.Callback
12-
import com.facebook.react.bridge.JavaOnlyArray
13-
import com.facebook.react.bridge.JavaOnlyMap
1412
import com.facebook.react.bridge.ReactApplicationContext
15-
import com.facebook.react.bridge.WritableArray
1613
import com.facebook.react.bridge.WritableMap
14+
import com.facebook.testutils.shadows.ShadowArguments
1715
import org.assertj.core.api.Assertions.assertThat
18-
import org.junit.After
1916
import org.junit.Before
2017
import org.junit.Test
18+
import org.junit.runner.RunWith
2119
import org.mockito.ArgumentCaptor
22-
import org.mockito.MockedStatic
23-
import org.mockito.Mockito.mockStatic
2420
import org.mockito.kotlin.any
2521
import org.mockito.kotlin.mock
2622
import org.mockito.kotlin.never
2723
import org.mockito.kotlin.times
2824
import org.mockito.kotlin.verify
2925
import org.mockito.kotlin.whenever
26+
import org.robolectric.RobolectricTestRunner
27+
import org.robolectric.annotation.Config
3028

29+
@Config(shadows = [ShadowArguments::class])
30+
@RunWith(RobolectricTestRunner::class)
3131
class AppStateModuleTest {
3232
private lateinit var appStateModule: AppStateModule
3333
private lateinit var reactContext: ReactApplicationContext
34-
private lateinit var arguments: MockedStatic<Arguments>
3534

3635
@Before
3736
fun setUp() {
3837
reactContext = mock()
3938
appStateModule = AppStateModule(reactContext)
4039

41-
arguments = mockStatic(Arguments::class.java)
42-
arguments.`when`<WritableArray>(Arguments::createArray).thenAnswer { JavaOnlyArray() }
43-
arguments.`when`<WritableMap>(Arguments::createMap).thenAnswer { JavaOnlyMap() }
44-
4540
// we check whether we have an active react instance before emitting an event,
4641
// therefore for the tests we need this returning `true`.
4742
whenever(reactContext.hasActiveReactInstance()).thenReturn(true)
4843
}
4944

50-
@After
51-
fun tearDown() {
52-
arguments.close()
53-
}
54-
5545
@Test
5646
fun testGetCurrentAppState() {
5747
val successCallbackMock: Callback = mock()

packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/blob/BlobModuleTest.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@
88
package com.facebook.react.modules.blob
99

1010
import android.net.Uri
11-
import com.facebook.react.bridge.Arguments
1211
import com.facebook.react.bridge.JavaOnlyArray
1312
import com.facebook.react.bridge.JavaOnlyMap
1413
import com.facebook.react.bridge.ReactTestHelper
15-
import com.facebook.react.bridge.WritableMap
1614
import java.nio.ByteBuffer
1715
import java.util.UUID
1816
import kotlin.random.Random
@@ -21,8 +19,6 @@ import org.junit.After
2119
import org.junit.Before
2220
import org.junit.Test
2321
import org.junit.runner.RunWith
24-
import org.mockito.MockedStatic
25-
import org.mockito.Mockito.mockStatic
2622
import org.robolectric.RobolectricTestRunner
2723
import org.robolectric.annotation.Config
2824

@@ -32,13 +28,9 @@ class BlobModuleTest {
3228
private lateinit var bytes: ByteArray
3329
private lateinit var blobId: String
3430
private lateinit var blobModule: BlobModule
35-
private lateinit var arguments: MockedStatic<Arguments>
3631

3732
@Before
3833
fun prepareModules() {
39-
arguments = mockStatic(Arguments::class.java)
40-
arguments.`when`<WritableMap> { Arguments.createMap() }.thenAnswer { JavaOnlyMap() }
41-
4234
bytes = ByteArray(120)
4335
Random.Default.nextBytes(bytes)
4436

@@ -49,7 +41,6 @@ class BlobModuleTest {
4941
@After
5042
fun cleanUp() {
5143
blobModule.remove(blobId)
52-
arguments.close()
5344
}
5445

5546
@Test

packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/network/NetworkingModuleTest.kt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@
1010

1111
package com.facebook.react.modules.network
1212

13-
import com.facebook.react.bridge.Arguments
1413
import com.facebook.react.bridge.JavaOnlyArray
1514
import com.facebook.react.bridge.JavaOnlyMap
1615
import com.facebook.react.bridge.ReactApplicationContext
1716
import com.facebook.react.bridge.WritableArray
18-
import com.facebook.react.bridge.WritableMap
1917
import com.facebook.react.common.network.OkHttpCallUtil
18+
import com.facebook.testutils.shadows.ShadowArguments
2019
import java.io.InputStream
2120
import java.nio.charset.StandardCharsets
2221
import okhttp3.Call
@@ -46,15 +45,16 @@ import org.mockito.kotlin.verify
4645
import org.mockito.kotlin.whenever
4746
import org.mockito.kotlin.withSettings
4847
import org.robolectric.RobolectricTestRunner
48+
import org.robolectric.annotation.Config
4949

5050
/** Tests [NetworkingModule] */
51+
@Config(shadows = [ShadowArguments::class])
5152
@RunWith(RobolectricTestRunner::class)
5253
class NetworkingModuleTest {
5354

5455
private lateinit var networkingModule: NetworkingModule
5556
private lateinit var httpClient: OkHttpClient
5657
private lateinit var context: ReactApplicationContext
57-
private lateinit var arguments: MockedStatic<Arguments>
5858
private lateinit var okHttpCallUtil: MockedStatic<OkHttpCallUtil>
5959
private lateinit var requestBodyUtil: MockedStatic<RequestBodyUtil>
6060
private lateinit var requestArgumentCaptor: KArgumentCaptor<Request>
@@ -74,10 +74,6 @@ class NetworkingModuleTest {
7474

7575
networkingModule = NetworkingModule(context, "", httpClient, null)
7676

77-
arguments = mockStatic(Arguments::class.java)
78-
arguments.`when`<WritableArray> { Arguments.createArray() }.thenAnswer { JavaOnlyArray() }
79-
arguments.`when`<WritableMap> { Arguments.createMap() }.thenAnswer { JavaOnlyMap() }
80-
8177
okHttpCallUtil = mockStatic(OkHttpCallUtil::class.java)
8278
requestArgumentCaptor = argumentCaptor()
8379
}
@@ -92,7 +88,6 @@ class NetworkingModuleTest {
9288

9389
@After
9490
fun tearDown() {
95-
arguments.close()
9691
okHttpCallUtil.close()
9792
}
9893

0 commit comments

Comments
 (0)