Top Banner
Perl and testing libraries…! tokuhirom YAPC::Asia 2014
79

Test::Kantan - Perl and Testing

Dec 02, 2014

Download

Engineering

YAPC::Asia 2014 Slde.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Test::Kantan - Perl and Testing

Perl and testing libraries…!

tokuhirom YAPC::Asia 2014

Page 2: Test::Kantan - Perl and Testing

Conclusion

Page 3: Test::Kantan - Perl and Testing

You should try Test::Kantan

Page 4: Test::Kantan - Perl and Testing

Self introduction

Page 5: Test::Kantan - Perl and Testing

Server side Web engineer

Page 6: Test::Kantan - Perl and Testing

Amon2

Localizer

MadEyeArcher

CarolineDifflet

Furl

Docopt SQL::MakerHTTP::Session2

FormValidator::Lite

mobirc

Page 7: Test::Kantan - Perl and Testing

Test::SharedFork Test::Pretty Test::TCP

Page 8: Test::Kantan - Perl and Testing

If you have any questions around the modules, you can ask me after this talk.

Page 9: Test::Kantan - Perl and Testing

Do you like testing?

Page 10: Test::Kantan - Perl and Testing

Do you like TDD?

Page 11: Test::Kantan - Perl and Testing

Then…

Page 12: Test::Kantan - Perl and Testing

History of Perl testing libraries…!

Page 13: Test::Kantan - Perl and Testing

Test::More, Test::Class

Page 14: Test::Kantan - Perl and Testing

Test::More

use Test::More tests => 1;

ok(“dan” eq “kogai”);

Page 15: Test::Kantan - Perl and Testing

Test::Class

Page 16: Test::Kantan - Perl and Testing

ArchitectureTest::Builder

Test::More Test::Class Test::Exceptions

etc…

Page 17: Test::Kantan - Perl and Testing

Test::Builder

• Counts number of tests

• Counts number of Failures

• Counts number of Succeeded.

Page 18: Test::Kantan - Perl and Testing

TAP!

Page 19: Test::Kantan - Perl and Testing

Test Anything Protocol

Page 20: Test::Kantan - Perl and Testing
Page 21: Test::Kantan - Perl and Testing

Latest enhancements

• subtest • done_testing

Page 22: Test::Kantan - Perl and Testing

subtest 'feature2', sub { ok 1, 'it works'; ok 0, 'it looks great'; }; done_testing;

Page 23: Test::Kantan - Perl and Testing
Page 24: Test::Kantan - Perl and Testing

TAP with prove

Page 25: Test::Kantan - Perl and Testing

prove eats TAP

Page 26: Test::Kantan - Perl and Testing
Page 27: Test::Kantan - Perl and Testing

Test::Builder is evolving…

Page 28: Test::Kantan - Perl and Testing

Test::Builder2

• It may started at 2011. • With dreams…

Page 29: Test::Kantan - Perl and Testing

TB2

• Custom output • Full rewrite • OO-ish APIs

Page 30: Test::Kantan - Perl and Testing

But…

Page 31: Test::Kantan - Perl and Testing

We need workaround for now…!

Page 32: Test::Kantan - Perl and Testing

Test::Pretty 爆誕

Page 33: Test::Kantan - Perl and Testing

Pretty output without code modifications!

Page 34: Test::Kantan - Perl and Testing
Page 35: Test::Kantan - Perl and Testing
Page 36: Test::Kantan - Perl and Testing
Page 37: Test::Kantan - Perl and Testing
Page 38: Test::Kantan - Perl and Testing

めっちゃ見やすい!!

Page 39: Test::Kantan - Perl and Testing

How it works?

Page 40: Test::Kantan - Perl and Testing

Monkey patching…

Page 41: Test::Kantan - Perl and Testing

But it works. Maybe.

Page 42: Test::Kantan - Perl and Testing

It’s not a big problem. Because this is a

workaround for now.

Page 43: Test::Kantan - Perl and Testing

Test::Ika

Page 44: Test::Kantan - Perl and Testing

RSpec like testing framework for Perl5

Page 45: Test::Kantan - Perl and Testing

Ika?

Page 46: Test::Kantan - Perl and Testing

Ika =

Page 47: Test::Kantan - Perl and Testing

Please check it, if you love RSpec.

Page 48: Test::Kantan - Perl and Testing

Test::More の停滞 Development has stagnated

Page 49: Test::Kantan - Perl and Testing

Test::Builder2

• It may started at 2011. • With dreams… • It was gone. ← NEW!

Page 50: Test::Kantan - Perl and Testing

Test::More x.xx was released.

Page 51: Test::Kantan - Perl and Testing

Then…

Page 52: Test::Kantan - Perl and Testing

I can’t wait evolution.

Page 53: Test::Kantan - Perl and Testing

Test::Kantan 爆誕

Page 54: Test::Kantan - Perl and Testing

Yet another testing framework

Page 55: Test::Kantan - Perl and Testing

Test::Kantan is not based on Test::Builder

Page 56: Test::Kantan - Perl and Testing

What’s new?

Page 57: Test::Kantan - Perl and Testing

subtests with hooks

Page 58: Test::Kantan - Perl and Testing

before_each after_each

Page 59: Test::Kantan - Perl and Testing

jasmine inspired interfaces.

IIRC

Page 60: Test::Kantan - Perl and Testing

BDD Style

Page 61: Test::Kantan - Perl and Testing
Page 62: Test::Kantan - Perl and Testing

Given-When-Then

Page 63: Test::Kantan - Perl and Testing
Page 64: Test::Kantan - Perl and Testing

Plain old Test::More style

Page 65: Test::Kantan - Perl and Testing
Page 66: Test::Kantan - Perl and Testing

Assertions

Page 67: Test::Kantan - Perl and Testing

ok { $foo->bar() eq ‘baz’ };

Page 68: Test::Kantan - Perl and Testing

Power Assert hooks B optree.

Page 69: Test::Kantan - Perl and Testing

ok { x(x($foo)->bar()) eq ‘baz’ };

Page 70: Test::Kantan - Perl and Testing

expect($x)->to_be_true;

Page 71: Test::Kantan - Perl and Testing

Shows testing details if it’s failed.

Page 72: Test::Kantan - Perl and Testing
Page 73: Test::Kantan - Perl and Testing
Page 74: Test::Kantan - Perl and Testing
Page 75: Test::Kantan - Perl and Testing

All or nothing. pass or die;

Page 76: Test::Kantan - Perl and Testing

Conclusion

Page 77: Test::Kantan - Perl and Testing

Conclusion

• Test::SharedFork

• Test::TCP

• Test::Pretty

• Test::Ika

• Test::Kantan ← NEW!

Page 78: Test::Kantan - Perl and Testing

Enjoy testing!

Page 79: Test::Kantan - Perl and Testing

Thanks