非常简化的示例,我试图使语言无关:我有一个XmlView对象,它有一个常量属性FACTORY_NAME标记为“工厂”,一个常量属性VIEW_NAME标记为“视图”。还有一个二维字符串数组,其中包含数字1、3、4 5之间的链接,以及它们的英文、德文和法文字符串表示的本地化变量,它们位于资源文件中。
然后,我在/factory/{id:\\d+}上有一个REST调用,它返回<factory><view>%did:%sid</view></factory>,其中工厂是FACTORY_NAME,视图是任何VIEW_NAME,%did是作为路径参数输入的任何数字,可以是1、3、4或5作为一个数字,%sid是该数字的本地化表示(所以1,ein,un;3,drei,trois;4,即quatre;5,fünf,cinq)。请注意,使用数百个API端点来完成更复杂的事情,实际代码要复杂很多倍,这只是一个例子。
在上面设计的示例中,基本上有三件事我想测试:
/factory/{id:\\d+}端点;还有其他需要测试的东西,但是对于这个示例来说,这些都可以。
基于上面的例子,这个测试应该在多大程度上使用硬编码的值和/或迭代来测试这个代码是否返回预期的值?
我不知道该怎么办。使用现有变量可以在更改某些内容时手动更改大量测试,但这也意味着我只是在检查我的值是否被代码正确处理,而不是这些值本身是否正确。对于这种情况,是否有任何公认的最佳实践?
发布于 2019-06-28 11:24:32
我不认为这里有好或坏,这是一种权衡。
我自己的偏好是硬编码您所断言的值--使您的测试与实现脱钩有其好处。
也就是说,如果实现发生了变化,您想要更改测试而不改变行为吗?
如果您需要更改您的测试,如果实现发生了变化,您可能测试错了东西(或者有一个非常不稳定的API?)
https://sqa.stackexchange.com/questions/39746
复制相似问题