How to write AcceptanceTest
/**
* ςετϝιου࣮ߦલʹݺΕΔ
* @param AcceptanceTester $I
*/
public function _before(AcceptanceTester $I)
{
}
Slide 15
Slide 15 text
How to write AcceptanceTest
/**
* ςετϝιου࣮ߦޙʹݺΕΔ
* @param AcceptanceTester $I
*/
public function _after(AcceptanceTester $I)
{
}
Slide 16
Slide 16 text
How to write AcceptanceTest
/**
* ςετϝιου
* @param AcceptanceTester $I
*/
public function tryToTest(AcceptanceTester $I) {
$this->_notTest($I);
}
Slide 17
Slide 17 text
How to write AcceptanceTest
/**
* ςετϝιουͰͳ͍߹ϝιου໊ઌ಄ʹͰ”_”Λ͚ͭΔ
* @param AcceptanceTester $I
*/
public function _notTest(AcceptanceTester $I) {
}
Slide 18
Slide 18 text
How to execute AcceptanceTest
vendor/bin/codecept build
# શ࣮ߦ
vendor/bin/codecept run acceptance
# ࢦఆϑΝΠϧ͚࣮ͩߦ
vendor/bin/codecept run acceptance IndexCest
How to configure wpcept
• acceptance.suite.ymlͱ͍͏ϑΝΠϧͰઃఆ
• Codeceptionͷ߹ͲͷϒϥβΛར༻͢Δ
͔ɺσϑΥϧτͷURLԿ͔ʁͳͲΛઃఆ
• wpceptͷ߹ɺ͜͜ʹwp-adminͷύεɺ
ཧऀͷID,PWͳͲΛઃఆͰ͖Δɻ
Slide 25
Slide 25 text
How to configure wpcept
# Codeception Test Suite Configuration
# Suite for WordPress acceptance tests.
# Perform tests using or simulating a browser.
class_name: AcceptanceTester
modules:
enabled:
- \Helper\Acceptance
- WPBrowser:
url: 'http://wb-kyoto-201609.local'
adminUsername: admin
adminPassword: adminp
adminPath: /wp-admin
acceptance.suite.yml
How to execute wpcept
vendor/bin/wpcept build
# શ࣮ߦ
vendor/bin/wpcept run acceptance
# ࢦఆϑΝΠϧ͚࣮ͩߦ
vendor/bin/wpcept run acceptance IndexCest
# ڥΛࢦఆ࣮ͯ͠ߦ
vendor/bin/wpcept run acceptance —env=chrome
Slide 29
Slide 29 text
How to write test case
• CodeceptionͷυΩϡϝϯτʹهࡌͷ͋Δϝιο
υʴwpceptಠࣗͷϝιουΛར༻ͯ͠ςετΛ
هड़
• ཁૉͷࢦఆXPath, CSS SelectorͰߦ͏ɻ
How to write test case
public function indexWithLoginTest(AcceptanceTester $I)
{
$I->wantToTest('ϩάΠϯͯ͠Δͱ͖ͷTOPςετ');
$I->loginAsAdmin();
$I->amOnPage("/");
// αΠτͷͲ͔͜ʹ֘ͷจࣈྻ͕͋Δ͔֬ೝ
$I->canSee("wb-kyoto-201609");
// CSS SelectorͰࢦఆͯ֘͠ͷจࣈྻ͕͋Δ͔֬ೝ
$I->canSee('Just another WordPress site', '#masthead > div >
div > p');
// XPathͰࢦఆͯ֘͠ͷจࣈྻ͕͋Δ͔֬ೝ
$I->canSee('͜Μʹͪɺadmin ͞Μ !', '//*[@id="wp-admin-bar-
my-account"]/a');
}