0

外部ライブラリ メソッド (urllib.open()) に対してモック/スタブを作成したいと考えています。私は調査を行い、モックとスタブの python ライブラリを見つけました。これは問題ないようで、使用する可能性があります。

それでも、設計上の問題があります。入力パラメータごとにさまざまな応答を返すモック/スタブを作成するにはどうすればよいですか?

例: 次の呼び出しがあり、受け取ったパラメーターに応じて異なる応答を返す必要がある場合:

ulrllib.open('url1', data={...})
ulrllib.open('url2', data={...})
....

エラーのあるスタブ、または URL とデータ入力ごとに異なるデータを含むスタブを作成するにはどうすればよいですか?

4

1 に答える 1

1

Python モック ライブラリを使用するだけです。pypi.python.org/pypi/モック

また、次の代わりに、URL の for ループを検討することもできます。

ulrllib.open('url1', data={...})
ulrllib.open('url2', data={...})
ulrllib.open('url3', data={...})
ulrllib.open('url4', data={...})
ulrllib.open('url5', data={...})
ulrllib.open('url6', data={...})
ulrllib.open('url7', data={...})
ulrllib.open('url8', data={...})
ulrllib.open('url9', data={...})
ulrllib.open('url10', data={...})

あなたが使用することができます:

responses = ()#empty list
urls=('url1', 'url2', 'url3', 'url4', 'url5', 'url6', 'url7', 'url8', 'url9', 'url10')
data=('data1', 'data2', 'data3', 'data4', 'data5', 'data6', 'data7', 'data8', 'data9', 'data10')
for i, page in enumerate(urls):
  mydata = urllib.urlencode(data[i])
  x = urllib.open(page, mydata)
  responses.append(str(x.read()))
于 2012-09-04T18:03:58.080 に答える