Archive for October 2008
what killed my time to run my first test using “cucumber”
stucked with “No such file or directory – cucumber.yml” error?
then you must doing the same mistake as i was doing for last 1 hour.
i had the following code in Rakefile
require ‘cucumber/rake/task’
Cucumber::Rake::Task.new do |t|
profile = ENV['PROFILE'] || ‘default’
t.cucumber_opts = “–profile #{profile}”
end
the fix is just keep the following code only -
require ‘cucumber/rake/task’
Cucumber::Rake::Task.new do |t|
end
so are you still facing problem while you are executing “rake features” but it doesn’t come up with any output?
here is the check list – (this list may grow gradually) -
1. do you have features directory
2. do you have features/steps directory
3. lets say you have “features/transfer.feature” file do you know that you must have “features/steps/transfer_steps.rb” file?
4. do you know “feature name” must be prefixed for steps file?
hope this might help you.
BDD(behavior driven development) with easyb
hi,
just wondering is there anyone who started using easyb?
which is behavior driven development framework. if you are not familiar with BDD here is my explanation.
as you heard and practicing TDD (test driven development), (if you follow test first approach) you keep your specification up front through test case.
for example -
public void testShouldCreateAnUserWhenItHasValidData() {…}
as you can see, you are actually writing test case for behavior(specification) for your expected code.
and based on that test case you are implemented your logic in code. this how TDD works. for more explanation google IT
in BDD, this process is more simplified, for example if you look at my previous example -
public void testShouldCreateAnUserWhenItHasValidData() {…}
you can find, i have written one scenario when user object has valid data.
same test can be in different scenarios such as, when user object has no valid data. or the caller is not authorized and so on.
so to make such thing clear in java code, it requires code like the following. ie.
public void testShouldCreateAnUserWhenItHasNoValidData();
public void testShouldCreateAnUserWhenItHasValidDataButCallerIsNotPermitted();
public void testShouldCreateAnUserWhenItHasValidDataButCallerIsPermitted();
here how BDD is proposing a new approach of making this thing more fluent through a simplified test framework.
like JUnit, easyb is also another test framework, where you are writing your test context, and behavior in groovy code.
actullay the beauty is test scenario are written following the user story convention
which is similar with the ideal convention
“as an Author
i want to write book
so that user can understand me”.
you can also generate user story from the groovy code which you can’t do with JUnit.
so you don’t need to maintain separate document for maintaing user stories.
so when you are preparing user story and you can use easyb and groovy to format your user story rather than using ms word, excel or notepad text file ![]()
ie.
import com.somewherein.bdd.UserServiceImpl
import com.somewherein.bdd.Userscenario “create a new user with valid data”, {
given “an user with the valid data”, {
user = new User()
userService = new UserServiceImpl()
state = false
}
when “creating a new user”, {
state = userService.createUser(user)
}
then “returned state should be true”, {
state.shouldBe true
}
and “newly created user should be found”, {
userService.exists(user)
}
}
when i run this test it says -
Scenarios run: 1, Failures: 0, Pending: 0, Time Elapsed: 0.649 sec1 behavior run with no failures
so if i ask for generating the user story – it generate the following text
scenario create a new user with valid data
given an user with the valid data
when creating a new user
then returned state should be true
then newly created user should be found
this type of practice is very common in ruby on rails based development.
in ruby we have several options, but RSpec is the early comer who showed how cool it could be.
anyway, this is something you should work try EiD vacation, happy test first development.
here is an article from javalobby
Is easyb Easy? | Javalobby
you can use it with spring framework, here is the example -
best wishes,




