1 year ago

#368421

test-img

ohSnapFit

DividebyZero error in pre-launch report testing, despite intent only running when if statement says to keep that condition from happening

I have received a pre-launch report saying there is a divideByZero runtime error when their test deselects both of two checkboxes ("Fractions to Decimals" and "Decimals to Fractions". This makes sense, except that I keep the user from doing so with the following code. How come their testing bots are able to get to the else part of the when function? What is the appropriate way to make this more bullet proof? Do I need to be coding with a different logic in mind, namely one that those bots can do?

override fun onClick(view: View?) {
    when(view?.id) {
        R.id.btn_to_main -> {
            val noFracSelected: Boolean = !(Constants.ASK_8 || Constants.ASK_16 || Constants.ASK_32 || Constants.ASK_64) //true if frac type is selected
            val noQuestionTypeSelected: Boolean = !(Constants.ASK_DtoF || Constants.ASK_FtoD)
            when {
                noFracSelected -> Toast.makeText(this, "Select at least one type of fraction", Toast.LENGTH_LONG).show()
                noQuestionTypeSelected-> Toast.makeText(this, "Select at least one type of question", Toast.LENGTH_LONG).show()
                else -> {
                    val intent = Intent(this, MainActivity::class.java)
                    startActivity(intent)
                }
            }
        }
    }
}

Screenshot of the app

android

kotlin

checkbox

divide-by-zero

prelaunch

0 Answers

Your Answer

Accepted video resources