Je travaille sur un laboratoire pratique avec des tests unitaires. Ci-dessous l'application que je suis en train de tester (je teste toutes les méthodes et le constructeur). Tous mes tests sont complets, acceptons-en un, c'est-à-dire tester une méthode appelée "isScalene()", qui vérifie si le triangle est scalène (tous les côtés sont uniques) ou non.Échec de la méthode de test (test unitaire en VS)
Vous trouvez la méthode de test qui échoue en bas. Quand je change "equalateral" en True et "scalene" en False, ça passe. Quelque chose ne va pas dans l'application, mais je ne peux pas comprendre ce qu'il est (probablement dans « uniqueSides() bien).
Je vous serais reconnaissant si quelqu'un pouvait me aider!
public class Triangle {
double[] sides;
public Triangle(double a, double b, double c) {
if ((a <= 0) || (b <= 0) || (c <= 0)){
throw new ArgumentOutOfRangeException("Sidorna måste vara större än 0.");
}
sides = new double[] { a, b, c };
}
private int uniqueSides() {
return sides.Distinct<double>().Count();
}
public bool isScalene() {
if (uniqueSides() == 1){
return true;
}
else{
return false;
}
}
public bool isEquilateral() {
if (uniqueSides() == 3){
return true;
}
else{
return false;
}
}
public bool isIsosceles() {
if (uniqueSides() == 2){
return true;
}
else{
return false;
}
}
}
...
[TestMethod()]
public void isScalene3Test3()
{
Triangle triangle = new Triangle(25, 250, 2000);
var isosceles = triangle.isIsosceles();
var equalateral = triangle.isEquilateral();
var scalene = triangle.isScalene();
Assert.IsFalse(isosceles, "Test Isosceles");
Assert.IsFalse(equalateral, "Test Equalateral");
Assert.IsTrue(scalene, "Test Scalene");
}
Oh, comment aurais-je pu être si aveugle? ;) Merci! :) – holyredbeard
Je le fais tout le temps :) –
@JasonCraig n'oubliez pas de marquer comme la réponse. –