2017-02-12 16 views
7

Tôi đang phát triển kỹ năng Alexa trong nút và tôi muốn biết làm thế nào tôi có thể kiểm tra mã của tôi. Tôi đang sử dụng AJA SDK mà Amazon phát hành.Kiểm tra đơn vị kỹ năng Alexa sử dụng alexa-sdk

Tôi đã tìm thấy nhiều thư viện để thực hiện việc này, nhưng chúng dường như được phát triển trước khi có sẵn SDK alexa.

Xin cảm ơn trước.

Trả lời

5

Chúng tôi xây dựng giả lập Alexa của chúng tôi đặc biệt cho mục đích của việc cho phép dễ dàng đơn vị thử nghiệm và chức năng thử nghiệm các kỹ năng Alexa:
http://docs.bespoken.tools/en/latest/tutorials/tutorial_bst_emulator_nodejs/

Với nó, bạn có thể thực hiện cuộc gọi như thế này:

alexa.launched(function (error, response) { 
    alexa.spoken('About the podcast', function (error, response) { 
     assert.equal(response.response.outputSpeech.ssml, '<speak> Some SSML </speak>'); 
     done(); 
    }); 
}); 

Mã thử nghiệm này bắt chước người dùng khởi chạy kỹ năng và nói "Giới thiệu về Podcast". Các tương tác này được tự động dịch sang các yêu cầu JSON Alexa chính xác, sau đó sẽ được gửi đến mã kỹ năng của bạn.

Bạn cũng có thể tạo các thử nghiệm đơn vị phức tạp hơn dựa trên bắt chước trạng thái nội bộ của thiết bị Alexa trên các tương tác. Chúng được mô tả trong hướng dẫn.

0

Tôi đang sử dụng alexa-skill-test-framework với mocha để tạo json ý định json. thiết lập các dịch vụ AWS trong máy tính địa phương có thể sử dụng localstack, mà hỗ trợ DynamoDB, SQS, Lambda và các dịch vụ khác

0

lex-bot-tester là một khuôn khổ và công cụ để tạo xét nghiệm đàm thoại cho Amazon Alexa và Lex.

Thay vì sử dụng phiên bản mô phỏng của Kỹ năng, nó sử dụng SMAPI hiện có để xử lý Alexa.

Các thử nghiệm có thể được tạo bằng tay hoặc được tạo tự động bởi một công cụ được bao gồm, có tên là urutu. Ngay bây giờ, việc tạo mã là python nhưng việc thực hiện Kỹ năng có thể bằng bất kỳ ngôn ngữ được hỗ trợ nào.

Sau khi bạn tương tác với các kỹ năng từ dòng lệnh, xác định cuộc nói chuyện, các mã được tạo trông như thế này

#! /usr/bin/env python 
import sys 
import unittest 

from lex_bot_tester.aws.alexa.alexaskilltest import AlexaSkillTest 

verbose = True 

class GeneratedTests(AlexaSkillTest): 
    def test_book_my_trip_reserve_car(self): 
     """ 
     Test generated by urutu on 2018-02-21 01:24:51 
     """ 
     skill_name = 'BookMyTripSkill' 
     intent = 'BookCar' 
     conversation = [{'slot': None, 'text': 'ask book my trip to reserve a car', 'prompt': None}, 
         {'slot': 'CarType', 'text': 'midsize', 
         'prompt': 'What type of car would you like to rent, Our most popular options are economy, midsize, and luxury'}, 
         {'slot': 'PickUpCity', 'text': 'vancouver', 
         'prompt': 'In what city do you need to rent a car?'}, 
         {'slot': 'PickUpDate', 'text': 'tomorrow', 
         'prompt': 'What day do you want to start your rental?'}, 
         {'slot': 'ReturnDate', 'text': 'next week', 
         'prompt': 'What day do you want to return the car?'}, 
         {'slot': 'DriverAge', 'text': '25', 'prompt': 'How old is the driver for this rental?'}] 
     simulation_result = self.conversation_text(skill_name, intent, conversation, verbose=verbose) 
     self.assertSimulationResultIsCorrect(simulation_result, verbose=verbose) 

if __name__ == '__main__': 
    unittest.main() 

Có một lời giải thích chi tiết và một số video tại Testing Alexa Skills — Autogenerated tests.

Các vấn đề liên quan