@then('I would expect to see the following distribution for {car_type}')
def step(context, car_type):
car = find_car_method(car_type)
for row in context.table:
for heading in row.headings:
assertEqual(getattr(car, heading),
row[heading],
"%s does not match. " % heading + \
"Found %s" % getattr(car, heading))
(私はこのように、このようにそれを行いますアプローチはより多くのフィールドを追加することを可能にしますが、車の属性のチェックの多くの用途に十分な汎用性を保ちます)。
私の車のオブジェクトが4つのドア(int)を持っている場合、データテーブルが '4'のドア(ユニコードstr)を必要とするため、一致しません。
私はこのメソッドを実装して、列の名前をチェックし、フィールドごとに違った扱いをすることができますが、新しいフィールドを追加するときは、追加する場所が1つ増えるのでメンテナンスが難しくなります。代わりにステップデータテーブルに指定することをお勧めします。何かのように:
Then I would expect to see the following distribution for Ford
| engine | doors:int | color |
| 2.1L | 4 | red |
私はこれを達成するために使用することができます(これは動作しません)ですか?
同じ問題が発生しているデータテーブルから作成する必要がある場合があります。このmakeは、 'car'オブジェクトの型をそのまま使用して型を決定しようとしても役に立たない。
は、いくつかの掘削後、私は何かを見つけることができませんでしたので、私自身のソリューションを実装することを決定した
ベール