Dix-sept techniques de base de ma liste de contrôle de révision de code
Technique # 11: Choisir un cadre de test
Technique n ° 12: tous les tests unitaires réussissent
# 1
def test_Hyperpipe_Data_XEqNone():
assert Hyperpipe.Data().X == None# 2
def test_Hyperpipe_Data_Xarray():
test_value = np.ndarray((3,), buffer=np.array([0, 1, 2, 3]), dtype=int)
test_value = np.vstack([test_value, test_value])
assert (Hyperpipe.Data(X=test_value).X == test_value).all()
Technique n ° 13: échec du test unitaire et exceptions
#0
def test_Hyperpipe_pos_arg_erroe():
name = "myhype"
with pytest.raises(ValueError):
assert Hyperpipe(name).name == ""
Technique n ° 14: les tests unitaires couvrent l’intégralité de la signature
# pyCharm generates signature unit test boilerplate for youclass test_Optimization:
def test_best_config_metric(self):
assert Falsedef test_best_config_metric(self):
assert Falsedef test_optimizer_input_str(self):
assert Falsedef test_optimizer_input_str(self):
assert Falsedef test_sanity_check_metrics(self):
assert Falsedef test_get_optimizer(self):
assert Falsedef test_get_optimum_config(self):
assert Falsedef test_get_optimum_config_outer_folds(self):
assert False
Technique n ° 15: placer les structures de données partagées au niveau du projet pour les tests unitaires dans un fichier commun (facultatif)
@pytest.fixture()
def Housing():
dataset = fetch_california_housing()
return pd.DataFrame(dataset.data, columns=dataset.feature_names)