Skip to main content

Writing tests

NPM Version npm (tag) NPM

chatie puppet

Picture Credit: https://softwareautotools.com/2017/03/01/mocking-explained-in-python/

Powered by Wechaty TypeScript

Puppet Mocker & Starter Template for Wechaty, it is very useful when you:

  1. Want to test the Wechaty framework with a mock puppet, or
  2. You want to write your own Puppet implenmentation.

Then PuppetMock will helps you a lot.

USAGE#

Puppet Mock#

import { Wechaty }   from 'wechaty'import { PuppetMock } from 'wechaty-puppet-mock'
const puppet  = new PuppetMock()const wechaty = new Wechaty({ puppet })
wechaty.start()

Mocker & Environment#

import {  PuppetMock,  Mocker,  SimpleEnvironment,}                     from 'wechaty-puppet-mock'
const mocker = new Mocker()mocker.use(SimpleEnvironment())
const puppet = new PuppetMock({ mocker })const wechaty = new Wechaty({ puppet })
wechaty.start()
// The Mocker will start perform the SimpleEnvironment...

API Reference#

Mocker#

import { Wechaty }  from 'wechaty'import { PuppetMock, mock }   from 'wechaty-puppet-mock'
const mocker = new mock.Mocker()const puppet = new PuppetMock({ mocker })const bot = new Wechaty({ puppet })
await bot.start()
mocker.scan('https://github.com/wechaty', 1)
const user = mocker.createContact()mocker.login(user)
const contact = mocker.createContact()const room = mocker.createRoom()
user.say('Hello').to(contact)contact.say('World').to(user)

HELPER UTILITIES#

StateSwitch#

this.state.on('pending')this.state.on(true)this.state.off('pending')this.state.off(true)
await this.state.ready('on')await this.state.ready('off')