androidx.test.InstrumentationRegistry已弃用

时间:2018-10-22 07:39:51

标签: android deprecated androidx

切换到AndroidX并弃用了import androidx.test.InstrumentationRegistry

如果我进行下一次导入:import androidx.test.platform.app.InstrumentationRegistry 我不能getContext()

例如: val context = InstrumentationRegistry.getContext()

在build.gradle中:

androidTestImplementation 'androidx.test.ext:junit:1.0.0-beta02'
androidTestImplementation 'androidx.test:runner:1.1.0-beta02'

6 个答案:

答案 0 :(得分:17)

在使用Android X时,需要确保应用的build.gradle文件中包含以下内容

androidTestImplementation 'androidx.test:core:1.1.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'

第二个是确保您在测试中使用正确的AndroidJUnit4。

请确保您都导入了这两个。

import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4

现在,您可以使用下面显示的行来代替使用val context = InstrumentationRegistry.getContext()

val context = InstrumentationRegistry.getInstrumentation().getTargetContext()

答案 1 :(得分:15)

在大多数情况下,您可以使用sequence

如果您需要该应用程序,则可以使用InstrumentationRegistry.getInstrumentation().targetContext

如果您还没有的话,我想您也是一个新的测试依赖项: ApplicationProvider.getApplicationContext<MyAppClass>()

答案 2 :(得分:2)

我花了很多时间在应用testImplementation中使用androidTestImplementation而不是build.gradle来移动依赖关系,并进行反向操作。

我的错是我在test文件夹而不是androidTest文件夹中创建了测试类,从而导致AndroidJuit4InstrumentationRegistry出现未解决的错误。

当我将测试文件移至androidTest文件夹时,通过在androidTestImplementation中使用build.gradle来实现测试库的跨部门实现解决了该问题。

答案 3 :(得分:1)

对于Kotlin的使用,为了获得上下文:

    InstrumentationRegistry.getInstrumentation().targetContext

答案 4 :(得分:0)

InstrumentationRegistry.getInstrumentation().targetContext已弃用。   使用ApplicationProvider.getApplicationContext();

答案 5 :(得分:0)

在导入下方使用

Sub Test()
  Dim FileFldr As FileDialog
  Dim FileName As String, OrigFilePath As String
  Dim FileType As String, FilePath As String, CustID As String
  Dim LastAttRow As Long
  Dim vrtSelectedItem As Variant
  CustID = txtID.Value
  Set FileFldr = Application.FileDialog(msoFileDialogFilePicker)

With FileFldr
 .AllowMultiSelect = True
 .Title = "Select file to attach"
 .Filters.Add "All Files", "*.*", 1
If .Show <> -1 Then GoTo NoSelection

For Each vrtSelectedItem In .SelectedItems

 FilePath = Left(vrtSelectedItem, InStrRev(vrtSelectedItem, "\"))
 FileName = Right(vrtSelectedItem, Len(vrtSelectedItem) - InStrRev(vrtSelectedItem, "\"))
 FileType = Right(FileName, Len(FileName) - InStr(Dir(FileName), "."))

With Sheet6
 LastAttRow = .Range("D9999").End(xlUp).Row + 1
 .Range("D" & LastAttRow).Value = CustID
 .Range("E" & LastAttRow).Value = FileName
 .Range("F" & LastAttRow).Value = FileType
 .Range("G" & LastAttRow).Value = FilePath
 .Range("H" & LastAttRow).Value = "=Row()"
End With
Next
NoSelection:
End With
Sheet6.Activate
End Sub