Skip to content

Instantly share code, notes, and snippets.

View DavertMik's full-sized avatar
🤓
developing codeception & codeceptjs

Michael Bodnarchuk DavertMik

🤓
developing codeception & codeceptjs
View GitHub Profile
@DavertMik
DavertMik / gist:4309132
Created December 16, 2012 16:30
PHPUnit was written by robots. Really
<?php
$codeCoverage->setProcessUncoveredFilesFromWhitelist(
$arguments['processUncoveredFilesFromWhitelist']
);
if (isset($arguments['forceCoversAnnotation'])) {
$codeCoverage->setForceCoversAnnotation(
$arguments['forceCoversAnnotation']
);
}
@DavertMik
DavertMik / gist:4312270
Created December 16, 2012 20:07
Codeception Config with codecoverage
paths:
tests: tests
log: tests/log
data: tests/data
helpers: tests/helpers
settings:
bootstrap: _bootstrap.php
suite_class: \PHPUnit_Framework_TestSuite
colors: true
memory_limit: 1024M
@DavertMik
DavertMik / gist:4545952
Created January 16, 2013 09:45
Codeception: How to skip tests according to environment.
<?php
namespace Codeception\Module;
class WebHelper extends \Codeception\Module
{
// skip tests for PHP 5.3
public function _before(\Codeception\TestCase $test) {
if (floatval(phpversion()) == '5.3') $test->markTestSkipped();
}
}
@DavertMik
DavertMik / user.js.coffee
Last active December 12, 2015 07:49
BatmanJS current user
# user model
# single resource
class YourApp.User extends Batman.Model
@storageKey: 'user'
@resourceName: 'user'
@encode 'name'
@encode 'email'
@DavertMik
DavertMik / posts_controller.js.coffee
Created February 8, 2013 15:33
Batman.js destroying resources
class YourApp.PostsController extends Batman.Controller
# other controller actions
index: ->
show: ->
new: ->
create: ->
update: ->
@DavertMik
DavertMik / posts_controller.js.coffee
Created February 8, 2013 15:42
Batman.js - enhancing views
class YourApp.PostsController extends Batman.Controller
new: ->
@set 'post', new YourApp.Post()
@form = @render()
@form.on 'ready', =>
$('#post_title').focus()
@DavertMik
DavertMik / posts_controller.js.coffee
Last active December 12, 2015 07:49
BatmanJS render into another container
class YourApp.PostsController extends BatmanController
index: ->
@render
into: 'sidebar' # data-yield="sidebar" required
html: "Thanks to our sponsors!" # you can render plain html
# skip html option if you want to render a template
@DavertMik
DavertMik / index.html
Created February 8, 2013 15:59
BatmanJS dynamic rendering
<ul>
<li data-foreach-post="posts">
<div data-view="PostView">
Post: <span data-bind="post.title"></span>
</div>
</li>
</ul>
@DavertMik
DavertMik / user_mode.js.coffee
Last active December 12, 2015 07:58
BatmanJS dynamic counters
class YourApp.User extends Batman.Model
@resourceName: 'user'
@storageKey: 'users'
@classAccessor 'invitesAvailable', ->
# for simplicity we use jQuery to grab a limit from a page
$('#invite_limit').val() - @get('loaded').toArray().length
@DavertMik
DavertMik / gist:5042537
Last active December 14, 2015 06:29
Scenario Driven Unit Tests in Codeception. RFC

I'm trying to improve the concept of scenario-driven unit tests in Codeception.

The goal is to make them:

  • readable
  • easiest for mocks
  • IDE friendly
  • better with very\long\PSR\class\names

Here I took one sample unit test with mocks from this blog post. Despite author says that was wrong for him to write such test, let's try rewriting it with new Codeception paradigm.