Проблемы с тестированием значений, сохраненных в намерении Android (дополнительные функции всегда равны нулю) ⇐ Android
Проблемы с тестированием значений, сохраненных в намерении Android (дополнительные функции всегда равны нулю)
У меня есть следующее расширение Android Intent:
import android.content.Intent импортировать android.os.Parcelable импортировать java.io.Serializable fun Intent.addNewTaskFlags(): Intent = применить { addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP или Intent.FLAG_ACTIVITY_NEW_TASK или Intent.FLAG_ACTIVITY_NO_ANIMATION) } fun Intent.putData(dataMap: Map): Intent = apply { dataMap.forEach { (ключ, данные) -> данные?.let { положить (ключ, оно) } } } частное развлечение Intent.put(ключ: строка, значение: любое) { когда (значение) { is String → putExtra (ключ, значение) is Int → putExtra (ключ, значение) является логическим -> putExtra(ключ, значение) Длинный -> putExtra(ключ, значение) Double -> putExtra(ключ, значение) является Parcelable -> putExtra (ключ, значение) сериализуемо -> putExtra(ключ, значение) else -> throw IllegalArgumentException("Несовместимый тип данных: ${value.javaClass}") } } И следующий модульный тест:
class IntentExtensionTest { @Тест весело testAddNewTaskFlags() { // Когда valockIntent = spyk(Intent()) ockIntent.addNewTaskFlags() // Затем проверять { ockIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP или Intent.FLAG_ACTIVITY_NEW_TASK или Intent.FLAG_ACTIVITY_NO_ANIMATION) } } @Тест весело testPutData() { // Данный val packageableValue =ockk() val SerializableValue = Mockk() // Когда val намерение = Intent().putData( карта( От STRING_KEY до STRING_VALUE, от INT_KEY до INT_VALUE, BOOLEAN_KEY в BOOLEAN_VALUE, от LONG_KEY до LONG_VALUE, DOUBLE_KEY — DOUBLE_VALUE, PARCELABLE_KEY для ParcelableValue, SERIALIZABLE_KEY для сериализуемого значения ) ) // Затем намерение.run { val extras = extras ?: throw AssertionError("Дополнительные элементы намерения имеют значение null") AssertEquals(STRING_VALUE, extras.getString(STRING_KEY)) AssertEquals(INT_VALUE, extras.getInt(INT_KEY, -1)) AssertEquals(BOOLEAN_VALUE, extras.getBoolean(BOOLEAN_KEY, false)) AssertEquals(LONG_VALUE, extras.getLong(LONG_KEY, -1L)) AssertEquals(DOUBLE_VALUE, extras.getDouble(DOUBLE_KEY, -1.0)) AssertEquals(parcelableValue, extras.getParcelable(PARCELABLE_KEY)) AssertEquals(serializableValue, extras.getSerializable(SERIALIZABLE_KEY)) } } сопутствующий объект { частная константа val STRING_KEY = "stringKey" Private const val STRING_VALUE = "Привет, мир!" частный const val INT_KEY = "intKey" частная константа INT_VALUE = 1 частная константа val BOOLEAN_KEY = "booleanKey" частная константа val BOOLEAN_VALUE = true Private const val LONG_KEY = "longKey" частная константа LONG_VALUE = 123456789L частная константа val DOUBLE_KEY = "doubleKey" частная константа val DOUBLE_VALUE = 3,14 Private const val PARCELABLE_KEY = "parcelableKey" Private const val SERIALIZABLE_KEY = "serializableKey" } } Тест testPutData завершается с ошибкой:
Дополнительные элементы намерения имеют значение null java.lang.AssertionError: дополнительные намерения имеют значение null Почему это происходит и как это решить?
У меня есть следующее расширение Android Intent:
import android.content.Intent импортировать android.os.Parcelable импортировать java.io.Serializable fun Intent.addNewTaskFlags(): Intent = применить { addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP или Intent.FLAG_ACTIVITY_NEW_TASK или Intent.FLAG_ACTIVITY_NO_ANIMATION) } fun Intent.putData(dataMap: Map): Intent = apply { dataMap.forEach { (ключ, данные) -> данные?.let { положить (ключ, оно) } } } частное развлечение Intent.put(ключ: строка, значение: любое) { когда (значение) { is String → putExtra (ключ, значение) is Int → putExtra (ключ, значение) является логическим -> putExtra(ключ, значение) Длинный -> putExtra(ключ, значение) Double -> putExtra(ключ, значение) является Parcelable -> putExtra (ключ, значение) сериализуемо -> putExtra(ключ, значение) else -> throw IllegalArgumentException("Несовместимый тип данных: ${value.javaClass}") } } И следующий модульный тест:
class IntentExtensionTest { @Тест весело testAddNewTaskFlags() { // Когда valockIntent = spyk(Intent()) ockIntent.addNewTaskFlags() // Затем проверять { ockIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP или Intent.FLAG_ACTIVITY_NEW_TASK или Intent.FLAG_ACTIVITY_NO_ANIMATION) } } @Тест весело testPutData() { // Данный val packageableValue =ockk() val SerializableValue = Mockk() // Когда val намерение = Intent().putData( карта( От STRING_KEY до STRING_VALUE, от INT_KEY до INT_VALUE, BOOLEAN_KEY в BOOLEAN_VALUE, от LONG_KEY до LONG_VALUE, DOUBLE_KEY — DOUBLE_VALUE, PARCELABLE_KEY для ParcelableValue, SERIALIZABLE_KEY для сериализуемого значения ) ) // Затем намерение.run { val extras = extras ?: throw AssertionError("Дополнительные элементы намерения имеют значение null") AssertEquals(STRING_VALUE, extras.getString(STRING_KEY)) AssertEquals(INT_VALUE, extras.getInt(INT_KEY, -1)) AssertEquals(BOOLEAN_VALUE, extras.getBoolean(BOOLEAN_KEY, false)) AssertEquals(LONG_VALUE, extras.getLong(LONG_KEY, -1L)) AssertEquals(DOUBLE_VALUE, extras.getDouble(DOUBLE_KEY, -1.0)) AssertEquals(parcelableValue, extras.getParcelable(PARCELABLE_KEY)) AssertEquals(serializableValue, extras.getSerializable(SERIALIZABLE_KEY)) } } сопутствующий объект { частная константа val STRING_KEY = "stringKey" Private const val STRING_VALUE = "Привет, мир!" частный const val INT_KEY = "intKey" частная константа INT_VALUE = 1 частная константа val BOOLEAN_KEY = "booleanKey" частная константа val BOOLEAN_VALUE = true Private const val LONG_KEY = "longKey" частная константа LONG_VALUE = 123456789L частная константа val DOUBLE_KEY = "doubleKey" частная константа val DOUBLE_VALUE = 3,14 Private const val PARCELABLE_KEY = "parcelableKey" Private const val SERIALIZABLE_KEY = "serializableKey" } } Тест testPutData завершается с ошибкой:
Дополнительные элементы намерения имеют значение null java.lang.AssertionError: дополнительные намерения имеют значение null Почему это происходит и как это решить?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как улучшить прогноз осадков, когда большинство значений в наборе данных равны нулю?
Anonymous » » в форуме Python - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-
-
-
PHP: ложные значения всегда равны «», истинные значения всегда равны «1»? [дубликат]
Anonymous » » в форуме Php - 0 Ответы
- 76 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Entity Framework Core: `SqlNullValueException: данные равны нулю.` Как устранить неполадки?
Anonymous » » в форуме C# - 0 Ответы
- 39 Просмотры
-
Последнее сообщение Anonymous
-