ハウツーガイド - コネクションのテストの記述
このセグメントでは、コネクションに関するコネクターのテストの記述方法について説明します。
サンプルコネクター
connector.rb内のコード。
{
title: 'Chargebee-demo',
connection: {
fields: [
{
name: 'api_key',
control_type: 'password',
hint: 'You can find your API key final change3' \
"under 'Settings'=>'Configure Chargebee'=>'API Keys and Webhooks'" \
" in Chargebee's web console.",
label: 'Your API Key'
},
{
name: 'domain',
control_type: 'subdomain',
url: 'chargebee.com'
}
],
authorization: {
type: 'basic_auth',
apply: lambda do |connection|
user(connection['api_key'])
end
},
base_uri: lambda do |connect|
"https://#{connect['domain']}.chargebee.com"
end
},
test: lambda do |_connection|
get('/api/v2/plans', limit: 1)
end,
}settings.yaml.enc内の認証情報。
api_key: valid_api_key
domain: valid_domainテストの生成
workato new [PATH]を使用してコネクタープロジェクトを生成した場合、プロジェクトにはサンプルのconnector_spec.rbファイルがすでに含まれているはずです。 含まれていない場合は、test lambdaのテストを格納するためにこのファイルを作成する必要があります。
サンプルRSpecコンテンツ
connector_spec.rb内のコード。
RSpec.describe 'connector', :vcr do
let(:connector) { Workato::Connector::Sdk::Connector.from_file('connector.rb', settings) }
let(:settings) { Workato::Connector::Sdk::Settings.from_default_file }
it { expect(connector).to be_present }
describe 'test' do
subject(:output) { connector.test(settings) }
context 'given valid credentials' do
it 'establishes valid connection' do
expect(output).to be_truthy
end
it 'returns response that is formatted properly' do
# large Test responses might also cause connections to be evaluated wrongly
expect(output.to_s.length).to be < 5000
expect(output['list']).to be_kind_of(::Array)
end
end
end
endここでは、test lambdaに対して2つのテストを定義しました。これをステップごとに確認しましょう。
ステップ1 - コネクターインスタンスの定義
テストを開始するには、Workato SDK Gemを使用してコネクターのインスタンスを作成する必要があります。
let(:connector) { Workato::Connector::Sdk::Connector.from_file('connector.rb', settings) }ステップ2 - 設定インスタンスの定義
テストを開始するには、Workato SDK Gemを使用して設定のインスタンスを作成する必要があります。 これはWorkato上のコネクションと同義です。 前に定義したコネクターインスタンスでも、この設定インスタンスが使用されることに注意してください。
let(:settings) { Workato::Connector::Sdk::Settings.from_default_file }代替の設定ファイルから設定をインスタンス化するには、from_encrypted_fileまたはfrom_fileを使用できます。
let(:settings) { Workato::Connector::Sdk::Settings.from_encrypted_file('invalid_settings.yaml.enc') }ステップ3 - テストの記述とsubjectの定義
ここでは、実行するテストの"family"を記述します。 この場合は、キーワードtestを使用します。 その後、テストのsubjectも定義します。 ここで、outputの値を、test lambdaを実行するコネクターインスタンスに割り当てます。 これは、定義されたconnector.test(settings)で行われます。
describe 'test' do
subject(:output) { connector.test(settings) }ステップ4 - 個々のテストのアサーションの宣言
テストが成功または失敗するには、宣言された比較が必要です。
ここでは、test lambdaの出力がtruthyであることを"expect"し、テスト"establishes valid connection"を満たすように宣言しています。
また、test lambdaの出力が5000文字未満であり、そのlist属性が配列であることも"expect"します。 これにより、テスト"returns response that is formatted properly"を満たします
context 'given valid credentials' do
it 'establishes valid connection' do
expect(output).to be_truthy
end
it 'returns response that is formatted properly' do
# large Test responses might also cause connections to be evaluated wrongly
expect(output.to_s.length).to be < 5000
expect(output['list']).to be_kind_of(::Array)
end
endステップ5 - RSpecテストの実行
最後のステップは、RSpecテストを実行することです。 これはbundle exec rspec spec/connector_spec.rbコマンドで行います。
$ bundle exec rspec spec/connector_spec.rb
connector
is expected to be present
test
given valid credentials
establishes valid connection
returns response that is formatted properly
Finished in 0.04959 seconds (files took 1.04 seconds to load)
3 examples, 0 failuresLast updated: