使用Cucumber和MySQL的BDD - 自动增量问题

时间:2009-10-22 19:56:36

标签: mysql ruby-on-rails cucumber

我正在为我的RoR应用程序编写一些Cucumber功能,它将记录插入数据库,然后将查询发送到我的XML API。由于我的请求(硬编码XML)的性质,我需要知道行的ID是什么。这是我的场景:

Scenario: Client requests call info
  Given There is a call like:
    | id         | caller_phone_number |
    | 1          | 3103937123          |
  When I head over to call info
  And Post this XML:
    """
    <?xml version="1.0" encoding="UTF-8"?>
    <request-call-info>
      <project-code>1000000001</project-code>
    </request-call-info>
    """
  Then The call info should match
  And The status code should be 0

我已经使用我的_test数据库设置了Cuke,并且我还注意到它在运行我的功能之前没有重置所有表。

设置此方法的正确方法是什么?谢谢!

1 个答案:

答案 0 :(得分:1)

首先,原谅我,因为这将是一个大脑转储,但希望它应该有所帮助或至少给你一些想法:

你可以像这样重写你的场景:

Scenario: Client requests call info
    Given There is a call with the phone number "3102320"
    When I post "request-call-info" xml to "call info" for the phone number "3102320"
    Then the call info for phone number "3102320" should match
        And the status code for phone number "3102320" should be 0

这样,您可以通过不是主键的属性来引用记录。

你在使用灯具吗?如果是这样,您可以明确地设置记录的ID。

根据您的应用程序,您可以使用内存sqlite3数据库运行测试。