2012-01-05 103 views
2

以前已回答过类似问题,但它们并未解决我的问题。测试最佳实践:对于CRUD api

我正在测试api的创建,读取,更新和删除方法。分别测试每个功能被认为是最好的。但是,

要测试创建,我需要阅读。 要测试阅读,我需要创建。 要测试更新,我需要创建和读取。 测试删除。我需要创建!

我没有其他(例如,低层api)验证除此API本身之外的机制。

在这种情况下,我应该用一切来写一个长测试吗?或者4个不同的测试;每个都有特殊的设置和拆卸逻辑。

感谢

回答

1

这是很主观的,但我会写四种不同的测试,因为它会

  • 更容易维护
  • 更容易找到一个可能的错误
  • 提高可读性

可读性

如果测试所有内容,你会如何命名testmethod?我发现很容易在的CreateShouldCreateARecord代替TestCRUD

形式读testmethods找到错误

可读性提高,更容易知道错在哪里。同样,对于一个单片方法,您在报告中得到的所有方法都是TestCRUD方法失败,您将不得不钻取以发现它是错误的实现读取。

+0

我不喜欢更多的代码;由于更复杂的设置* 4和拆卸逻辑* 4.但似乎这是确定问题的价格。例如,如果testRead失败,那么我应该知道安装失败(即写入失败)或读取失败。 – 2012-01-05 23:17:55

+0

@AsadIqbal - 与所有事情一样,总是存在一种折衷。在这种情况下和我的个人喜好,这是值得的。 – 2012-01-05 23:22:28

+0

我不同意有关查找错误的部分。如果我们记住OP问题,当我看到测试CreateShouldCreateARecord失败时,我怎么知道,如果是创建错误记录,或者只是读取失败,并给我一个错误的否定?我最终看到了BOTH函数和调试的代码。如果是这样,我什么也得不到,而我必须写更多的设置,拆散等。 – 2012-09-19 10:00:39