TestFlow class
允許簡單建構一系列測試之 TestAdapter
的支持類別。
備註
呼叫 adapter.send()
或 adapter.test()
會建立新的測試流程,您可以使用 Fluent 語法將其他測試鏈結在一起。
const { TestAdapter } = require('botbuilder');
const adapter = new TestAdapter(async (context) => {
if (context.text === 'hi') {
await context.sendActivity(`Hello World`);
} else if (context.text === 'bye') {
await context.sendActivity(`Goodbye`);
}
});
adapter.test(`hi`, `Hello World`)
.test(`bye`, `Goodbye`)
.then(() => done());
屬性
previous |
方法
assert |
產生判斷提示,指出回合處理邏輯未如預期般從 Bot 產生回復。 |
assert |
如果 Bot 回應不符合預期的文字 / 活動,則會產生判斷提示。 |
assert |
如果 Bot 回應不是其中一個候選字串,則產生判斷提示。 |
catch((reason: any) => void) | 將 |
delay(number) | 在繼續之前插入延遲。 |
finally(() => void) | 加入 finally 子句。 請注意,之後您無法繼續鏈結。 |
send(string | Partial<Activity>) | 將某項目傳送至 Bot。 |
send |
建立交談更新活動並處理活動。 |
start |
啟動測試序列,並傳回要等候的承諾。 |
test(string | Partial<Activity>, string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, string, number) | 將某專案傳送至 Bot,並預期 Bot 會以指定的回復傳回。 這隻是呼叫 |
then(() => void, (err: any) => void) | 將 |
屬性詳細資料
previous
previous: Promise<void>
屬性值
Promise<void>
方法詳細資料
assertNoReply(string, number)
產生判斷提示,指出回合處理邏輯未如預期般從 Bot 產生回復。
function assertNoReply(description?: string, timeout?: number): TestFlow
參數
- description
-
string
(選擇性)測試案例的描述。 如果未提供,則會產生一個 。
- timeout
-
number
(選擇性) 等候 Bot 回應的毫秒數。 預設為 3000
的值。
傳回
新的 TestFlow 物件,將這個交換附加至模型化交換。
assertReply(string | Partial<Activity> | TestActivityInspector, string, number)
如果 Bot 回應不符合預期的文字 / 活動,則會產生判斷提示。
function assertReply(expected: string | Partial<Activity> | TestActivityInspector, description?: string, timeout?: number): TestFlow
參數
- expected
-
string | Partial<Activity> | TestActivityInspector
來自 Bot 的預期文字或活動。 可以是回呼,以使用自定義邏輯來檢查回應。
- description
-
string
(選擇性)測試案例的描述。 如果未提供,則會產生一個 。
- timeout
-
number
(選擇性) 等候 Bot 回應的毫秒數。 預設為 3000
的值。
傳回
新的 TestFlow 物件,將這個交換附加至模型化交換。
assertReplyOneOf(string[], string, number)
如果 Bot 回應不是其中一個候選字串,則產生判斷提示。
function assertReplyOneOf(candidates: string[], description?: string, timeout?: number): TestFlow
參數
- candidates
-
string[]
候選回應的清單。
- description
-
string
(選擇性)測試案例的描述。 如果未提供,則會產生一個 。
- timeout
-
number
(選擇性) 等候 Bot 回應的毫秒數。 預設為 3000
的值。
傳回
新的 TestFlow 物件,將這個交換附加至模型化交換。
catch((reason: any) => void)
將 catch()
子句新增至測試承諾鏈結。
function catch(onRejected?: (reason: any) => void): TestFlow
參數
- onRejected
-
(reason: any) => void
如果測試擲回錯誤,則執行的程序代碼。
傳回
新的 TestFlow 物件,將這個交換附加至模型化交換。
delay(number)
在繼續之前插入延遲。
function delay(ms: number): TestFlow
參數
- ms
-
number
ms to wait.
傳回
新的 TestFlow 物件,將這個交換附加至模型化交換。
finally(() => void)
加入 finally 子句。 請注意,之後您無法繼續鏈結。
function finally(onFinally: () => void): Promise<void>
參數
- onFinally
-
() => void
在測試鏈結之後執行的程序代碼。
傳回
Promise<void>
代表異步作業的承諾。
send(string | Partial<Activity>)
將某項目傳送至 Bot。
function send(userSays: string | Partial<Activity>): TestFlow
參數
- userSays
-
string | Partial<Activity>
模擬使用者輸入的文字或活動。
傳回
新的 TestFlow 物件,將這個交換附加至模型化交換。
sendConversationUpdate()
startTest()
啟動測試序列,並傳回要等候的承諾。
function startTest(): Promise<void>
傳回
Promise<void>
代表異步作業的承諾。
test(string | Partial<Activity>, string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, string, number)
將某專案傳送至 Bot,並預期 Bot 會以指定的回復傳回。 這隻是呼叫 send()
和 assertReply()
的包裝函式。 這是協助程式提供的常見模式。
function test(userSays: string | Partial<Activity>, expected: string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, description?: string, timeout?: number): TestFlow
參數
- userSays
-
string | Partial<Activity>
模擬使用者輸入的文字或活動。
- expected
-
string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void
Bot 所傳送回復的預期文字或活動。
- description
-
string
(選擇性)測試案例的描述。 如果未提供,則會產生一個 。
- timeout
-
number
(選擇性) 等候 Bot 回應的毫秒數。 預設為 3000
的值。
傳回
新的 TestFlow 物件,將這個交換附加至模型化交換。