[英]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.