[英]Java: Creating a toString method for Polynomial class
public String toString(){
String mytoString="";
if(!a.equals(0)){
mytoString = a.toString() + "x^2";
}
if(!b.equals(0)){
mytoString += b.toString() + "x";
}
if(!c.equals(0)){
mytoString += c.toString();
}
return mytoString;
}
這是我的代碼。 該項目的發布測試表明我無法實現StringPositive。 我在弄清楚代碼到底出了什么問題時遇到了麻煩。 任何幫助表示贊賞。
好吧,一個明顯的問題-就我所知,您的代碼從不添加任何“ +”號...
聽起來您必須提交此文件以進行自動化測試-我建議您創建自己的單元測試,以查看在各種情況下會發生什么。 (您可能想從需求中的每個示例開始。)
這樣一來,您將能夠准確地看到實際輸出與預期輸出的出問題,而不僅僅是知道失敗的“ toStringPositive”。
好吧,第一件事突然出現在我身上:對於肯定的術語,沒有任何東西可以創建將它們鏈接到表達式其余部分的“ +”號。
我認為最好的測試方法是將大量不同的測試輸入輸入函數,然后查看結果是否符合規范。
一個明顯的問題是您永遠不會在字符串中包含任何加號,這很可能會使很多測試失敗。
您忘記了+或-。
是的,沒有+
或-
號。 您應該測試方法的a,b,c的簡單,通用值,以1,2,3開頭,而不是(0,1,1),(0,0,0)和(1,0, 0)和(-1,-2,-3)轉化為火箭科學:(0,-1,-0.0)。
乍看之下:
MyDouble
類的工作方式,但是對於tosString
的值,其tosString
返回什么? 23? 您的測試期望什么? (例如,您的班級處理的精度/准確度是多少,測試期望的水平是什么?)。 也許這對您有幫助
public String toString(){
String mytoString="";
if(!a.equals(0)){
mytoString = a.toString() + "x^2";
}
if(!b.equals(0)){
if (b > 0)
mytoString += "+";
mytoString += b.toString() + "x";
}
if(!c.equals(0)){
if (c > 0)
mytoString += "+";
mytoString += c.toString();
}
return mytoString;
}
您應該注意加正號的符號
您的程序無法滿足的一項要求:
如果所有3個系數均為0,則字符串應為“ 0”
並且如上所述,您沒有在條款后加或減。
請勿在任何系數上添加符號。
因此,例如,如果您的輸入是: {a=1, b=2, c=3}
,那么您的輸出將是: 1x^22x3
,而不是預期的1x^2+2x+3
更不用說當{a=0, b=0, c=0}
,您返回""
而不是0
時遇到錯誤
編寫一些JUnit測試-如果不確定該怎么做,請從測試團隊那里獲取。 您可以在此處創建數十種不同的方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.