Java tüketicisi ve JavaScript sağlayıcısı için sözleşme testi
Birinin diğerinin tüketicisi olduğu 2 hizmetimiz var. Tüketici Java ile yazılmıştır ve sağlayıcı JavaScript ile yazılmıştır.
Tüketici tarafında, pact-jvm kullanarak bir tüketici sözleşmesi testi tanımladık ve bir sözleşme oluşturabiliyoruz. Bu sözleşmede yanıt şu şekilde tanımlanmıştır:
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"body": [
"test"
]
},
Sağlayıcımızda şimdi pact-js kullanarak bir sağlayıcı-sözleşme-testi tanımlamaya çalışıyoruz, ancak pact-js'de MessageProviderPactsözleşmeyi doğrulamak için a kullandığımız bir problemle karşılaşıyoruz . Ancak testi çalıştırırken vücudun aşağıdaki gibi bir içerik özniteliğinde olması beklenir:
Key: - is expected
+ is actual
Matching keys and values are not shown
-[
- "test"
-]
+{
+ "contents": {
+ "statusCode": 200,
+ "body": "[test]"
+ }
+}
Anlaşma doğrulaması için kullanılan kod
const p = new MessageProviderPact({
messageProviders: {
'': handler
},
provider: 'provider-service',
pactUrls: [
path.resolve(
process.cwd(),
'pacts',
'consumer-service-provider-service.json'
)
]
});
Bunu çözmek için herhangi bir fikir var mı? Tüketici tarafında içerik anahtarı ile benzer bir mesaj yapısı kullanmak mümkün müdür? Veya sağlayıcı tarafında başka bir şekilde çözebilir miyiz
Yanıtlar
MessageProviderPactHTTP etkileşimleri değil, ileti kuyruğu türü etkileşimleri içindir. Sanırım standart Verifiersınıfa ihtiyacın var (https://github.com/pact-foundation/pact-js/#provider-api-testing):
const { Verifier } = require('@pact-foundation/pact');
let opts = {
...
};
new Verifier(opts).verifyProvider().then(function () {
// do something
});