J'ai un test unitaire Swift semblable au suivant:Comment affirmer la valeur d'un test d'unité Bool dans Swift optionnel?
var firstArgumentInClosure: Bool?
someFunc { firstArgumentInClosure = $0 }
XCTAssertTrue(firstArgumentInClosure?)
Je suis en train d'affirmer la fermeture a été appelé le premier argument étant true
.
Cela ne compile pas avec le message d'erreur:
indice'? doit être suivi d'un appel, la recherche de membre ou
Une façon que je peux résoudre ce problème est en changeant l'affirmation:
XCTAssertEqualTrue(firstArgumentInClosure ?? false)
est-il pas de manière plus concise de le faire? C'est un peu étrange de voir le ?? false
. Je ne veux pas non plus déplier implicitement l'option avec !
parce que je ne veux pas que le test échoue, je veux juste que le test échoue si firstArgumentInClosure
est nil
ou false
. Je veux aussi éviter tout if let
pour garder les choses concises.
De même, comment est-ce que j'écrirais une telle assertion quand j'essaye d'employer XCTAssertFalse
pour m'assurer qu'un Bool?
est false
?
Qu'est-ce qui ne va pas avec 'XCTAssertEqualTrue (firstArgumentInClosure ?? false)'? – Alexander
Si le test échoue, il n'est pas clair si la fermeture n'a jamais été appelée ou si la fermeture a été appelée avec le mauvais argument. –