2011-10-03 169 views
1

我正在为一个API编写一个PHPUnit测试用例(所以不完全是一个单元测试),而且我正在考虑进行所有其他测试都依赖的测试。PHPUnit测试之间的依赖关系

测试用例中的测试发出API请求。这些请求中的大多数都需要用户。有问题的测试会创建其他测试将使用的用户。

这是一个可怕的想法?

+0

只是使其成为一种实用方法,而不是一个单独的测试。 – OrangeDog

+0

我可以,但将它作为测试可以使测试案例更丰富。我错过了什么吗? –

+0

但是,您的测试没有测试您可以创建用户,他们正在测试其他功能。 – OrangeDog

回答

3

我认为单元测试的最佳方法是首先消除依赖关系。

  1. 您可以用您自己的本地版本来抽象结束点,以返回可预测的结果。这样你可以测试你的请求是否正确。

  2. 你可以用你的存根抽象数据提供者(数据库,filesitem等等),这些存根也会返回可预测的数据(用户名等等)。

在此之后,你只是测试你的要求,看看它们是正确的..

第二部分是actualy测试数据提供商,拥有不同的测试,所以你知道,良好的用户名将会给出。

然后你就可以测试API的连通性等等了。

编辑。如果您的代码中存在依赖关系,并且很难抽象出提供者或终点Web服务,则可能需要调整代码,以便它将接受对这些对象的引用作为参数。在你的测试中,你改变了用你自己的存根对象传递的对象。在生产中,您传递正确的引用,以便您不需要更改代码以进行测试。

我希望我已经清楚。如果没有,问我,我可以更好地解释,也许我不明白你的问题好