用junit测试某个方法时,能否调用同一个类中未经测试的另一个方法

比如说我要测试一个自己写的Stack类MyStack,包含了push()pop()peek()这三个方法情况一:在测试MyStack.push()时:MyStack.pu... 比如说我要测试一个自己写的Stack类MyStack,包含了push() pop() peek()这三个方法

情况一:
在测试MyStack.push()时:
MyStack.push(1);
assertEquals(1, MyStack.peek());
peek()会在同一个test类里进行测试,只是测试push()的时候它还没有被测试到,这样可以吗?

情况二:
在测试MyStack.peek()时:
MyStack.push(1);
assertEquals(1, MyStack.peek());
这时push()还没有被测试到,会在之后被测试,光调用它而不是作为测试判断依据,这样可以吗?

如果以上都不可以的话,我要如何测试这两个方法?MyStack类里的数组成员是私有的,不能直接使用。
展开
 我来答
丽然卷什要7927
推荐于2016-04-15 · TA获得超过5.8万个赞
知道大有可为答主
回答量:3.2万
采纳率:0%
帮助的人:4112万
展开全部
push() pop() peek()是静态方法,或者new一个MyStack的静态实例,就可以这样做,而且可以根据testcase的上下顺序将上一次执行的结果做为下一个用例的输入,但是这样做就破坏了每个用例的数据独立性,不利于长期维护同时也很容易出现测试代码上的错误,不建议这样用。push() pop() peek()三个方法一般会协同使用,所以用例设计时应该将每个场景独立设计,在每个testcase前对MyStack进行初始化,针对Stack中所存储数据边界值、等价类、Stack中方法单独调用,反复调用,交叉调用等情况分别设计用例覆盖。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式