2017-05-05 34 views
-2

我不确定如何单元测试将参数作为字符串接收并返回基于该参数的对象的方法。我无法提供该方法,因为我收到的说明是使用黑盒测试。 (方法提供了机器人。)Java:单元测试返回对象的方法

+1

看看JUnit。创建一个JUnit测试用例,该用例用各种输入数据执行该方法,并检查返回的对象对于每个输入集是否正确。 – Jason

+0

黑盒单元测试?这是什么意思?你能举一个例子来说明你的问题吗? –

+0

@defaultlocale https://en.wikipedia.org/wiki/Black-box_testing – QBrute

回答

2

通常您会查看该方法中的不同路径。然后你为每个路径至少写一个测试用例。

每个测试都使用那些应该导入相应路径的输入参数,并且声明关于输出结果的一些信息,以便再次匹配该路径的期望值。

从黑匣子方面来看,你可以用类似的方法做到这一点:但是这里你关注的是确定所需测试的方法的公共契约。

理想情况下,您先做黑匣子,然后您可以测量覆盖率,以确保您的待测方法不包含黑匣子方法忽略的方面。或者发现:我的合同经过充分测试;但我仍然只使用该方法的80%的代码。现在你必须决定:你对合同的理解不完整;或者该方法是否包含应该删除的20%的代码?

换句话说:这更像是一种思维方式的事情:您是否希望专注于保证所有可能的路径至少经过一次测试 - 与测试公共契约是否按预期工作(需要某种形式的可用性规范!)。