SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
FitNesse With Scala



         Meetu Maltiar
     Principal Consultant
   Email: meetu@knoldus.com
    Twitter:@meetumaltiar
FitNesse
It is an open-source automated framework created
  for software testing

It is excellent tool for collaboration in
  software development enabling developers,
  testers and customers to collaborate by
  writing tests

FitNesse is based on Ward Cunningham's framework
  for Integration Test (FIT) now developed by
  Robert C Martin
FitNesse Getting Stared

Download fitnesse-standalone.jar from fitnesse.org


Starting Fitnesse is by executing the jar file:
java -jar fitnesse-standalone.jar -p 9090
Note: Doing first time will create directories


You can now access FitNesse on URL: localhost:9090
FitNesse Overview
                    FitNesse


                                         Slim                System
     Tests             Wiki                       Fixtures
                                         Runner              Under Test
                               Results

Customer readable
Tests
FitNesse Overview..
FitNesse works by executing Wiki pages which
call custom written Fixtures

Fixtures act as a bridge between wiki pages
and the System Under Test

Fixtures can be written many programming
languages like java, Scala...
Tests And suites
FitNesse has Suite. It is a collection of
Tests. When we execute one Suite all tests
are run in a Suite.

For creating a TaxCalculationSuite, go to
localhost:9090/TaxCalculationSuite.

FitNesse is smart enough to open a new Suite
page. Save it by not adding any contents.
FitNesse Wiki Test

To create FitNesse wiki test, hover on
add button and select “Test”

It will open a new test page. Provide
TaxCalculationTest name for the Test for
now, and save it.
FitNesse Wiki Test

Writing Wiki Test page is simple. We
create wiki tables. Each row in a table
is separated by a pipe character.

For example a table header of id, name
and age is created like this
|id|name|age|
FitNesse Wiki Test
For TaxCalculation test we want to calculate
tax on annual salary.

Here is a simple rule of Tax. If annual
income is more than 100,000 it is 15%, or
else it is 10%.

The test in FitNesse Wiki must provide input
to Fixture code in Scala and we must assert
to compare output matched with actual
results.

|the tax for annual income|200000|is|30000|
FitNesse Wiki Test
|the tax for annual income|200000|is|30000| is a specification of intent
from a Tester or customer. Now, we can build support around this.

For us developers, we need to specify jars, classes and Fixture class
that we will be executing methods on.

For finding libraries and classes we use !path in FitNesse wiki.
!define TEST_SYSTEM {slim}
!path /Users/meetumaltiar/.sbt/boot/scala-2.9.1/lib/scala-library.jar
!path ../lib/fitlibrary-20080812.jar

Add above content at top of the test page and save. You will notice
proper classpath set.
FitNesse Wiki Test
We will have to load a specific class on which the
methods will be executed.

If our Fixture scala class is TaxCalculationFixture
in com.knoldus.fixture package. Then, we will have to
write following in FitNesse Wiki


|import|
|com.knoldus.fixture|

!|script | TaxCalculationFixture|
FitNesse Wiki Test
We need to write our test having assertions. We
will use DoFixture semantics in our Wiki.

|import|
|com.knoldus.fixture|

!|script | TaxCalculationFixture|
|the tax for annual income|200000|is|30000|

Above definition means that we have a method in
scala class TaxCalculationFixture:

def theTaxForAnnualIncomeIs(annualIncome:
Double, tax: Double): Boolean
FitNesse Wiki Test
|import|
|com.knoldus.fixture|

!|script | TaxCalculationFixture|
|the tax for annual income|200000|is|30000|

If we use DoFixture then each odd column is
a part of a method and each even column is
parameter to the method.

If method is written in camel case we can
write method in FitNesse wiki like a DSL
Completed Wiki Test
!define TEST_SYSTEM {slim}
!path /Users/meetumaltiar/.sbt/boot/scala-2.9.1/lib/scala-library.jar
!path ../lib/fitlibrary-20080812.jar


|import|
|com.knoldus.fixture|

!|script | TaxCalculationFixture|
|the tax for annual income|200000|is|30000|
|the tax for annual income|100000|is|10000|
Using DoFixture
To start with add a dependency of
fitnesse and fitlibrary in your SBT
project containing the fixture

libraryDependencies += "org.fitnesse" %
"fitnesse" % "20121220"

libraryDependencies += "org.fitnesse" %
"fitlibrary" % "20080812"
DoFixture
DoFixture is a Scala class extending DoFixture class
in FitLibrary

DoFixture is a Fixture and acts as a bridge between
wiki FitNesse tests and System under test

Each odd column in table in wiki corresponds to part
of method definition.

Each even column has parameters we can pass in
function defined in a DoFixture
TaxCalculationFixture
package com.knoldus.fixture

import fitlibrary.DoFixture
import com.knoldus.tax.TaxCalculatorService

class TaxCalculationFixture extends DoFixture {

  val taxCalculatorService = new TaxCalculatorService

  def theTaxForAnnualIncomeIs(annualIncome: Double, tax:
Double) =
taxCalculatorService.getTaxForAnnualIncome(annualIncome) ==
tax
}
TaxCalculatorService
package com.knoldus.tax

class TaxCalculatorService {

    def getTaxForAnnualIncome(annualIncome: Double):
Double = (annualIncome <= 100000.0) match {
      case true => annualIncome * 0.10
      case false => annualIncome * 0.15
  }
}
Running Tests
We can execute an individual FitNesse wiki
Test

We can execute all tests by running a Suite.
Running a suite will run all tests in a
Suite

We can organize Suites depending on
behavioral design of our application.
Code is available on Knoldus Github:
https://github.com/knoldus/ScalaFitnesse

               Thanks!!

Weitere ähnliche Inhalte

Was ist angesagt?

Automation With A Tool Demo
Automation With A Tool DemoAutomation With A Tool Demo
Automation With A Tool DemoNivetha Padmanaban
 
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)Kaunas Java User Group
 
TESTLINK INTEGRATOR
TESTLINK INTEGRATORTESTLINK INTEGRATOR
TESTLINK INTEGRATORHirosh Tharaka
 
Win at life with unit testing
Win at life with unit testingWin at life with unit testing
Win at life with unit testingmarkstory
 
Introduction To Testlink
Introduction To TestlinkIntroduction To Testlink
Introduction To Testlinkguest1425e3
 
Need for automation testing
Need for automation testingNeed for automation testing
Need for automation testing99tests
 
Full Testing Experience - Visual Studio and TFS 2010
 Full Testing Experience - Visual Studio and TFS 2010 Full Testing Experience - Visual Studio and TFS 2010
Full Testing Experience - Visual Studio and TFS 2010Ed Blankenship
 
Qa process 2012
Qa process 2012Qa process 2012
Qa process 2012ashokack
 
Test Automation Architecture in Microservices
Test Automation Architecture in MicroservicesTest Automation Architecture in Microservices
Test Automation Architecture in MicroservicesAlper Mermer
 
Test Classes in Salesforce
Test Classes in SalesforceTest Classes in Salesforce
Test Classes in SalesforceAtul Gupta(8X)
 
1.microsoft visual studio 2010 test manager
1.microsoft visual studio 2010  test manager1.microsoft visual studio 2010  test manager
1.microsoft visual studio 2010 test managerAshwin Jujgar
 
Jenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkJenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkNitin Sharma
 
Keyword-driven Test Automation Framework
Keyword-driven Test Automation FrameworkKeyword-driven Test Automation Framework
Keyword-driven Test Automation FrameworkMikhail Subach
 
Test Automation
Test AutomationTest Automation
Test Automationrockoder
 
KeytorcTestTalks #11 - Onur BaĹźkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur BaĹźkirt, Agile Test Management with Testrail KeytorcTestTalks #11 - Onur BaĹźkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur BaĹźkirt, Agile Test Management with Testrail Keytorc Software Testing Services
 
Writing Testable Code
Writing Testable CodeWriting Testable Code
Writing Testable Codejameshalsall
 
automation testing benefits
automation testing benefitsautomation testing benefits
automation testing benefitsnazeer pasha
 
Reaching for Your Quality Stretch Goals: Testing at Realtor.com
Reaching for Your Quality Stretch Goals: Testing at Realtor.comReaching for Your Quality Stretch Goals: Testing at Realtor.com
Reaching for Your Quality Stretch Goals: Testing at Realtor.comKlaus Salchner
 
Automation test scripting guidelines
Automation test scripting guidelines Automation test scripting guidelines
Automation test scripting guidelines Bharathi Krishnamurthi
 

Was ist angesagt? (20)

Automation With A Tool Demo
Automation With A Tool DemoAutomation With A Tool Demo
Automation With A Tool Demo
 
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
 
TESTLINK INTEGRATOR
TESTLINK INTEGRATORTESTLINK INTEGRATOR
TESTLINK INTEGRATOR
 
Win at life with unit testing
Win at life with unit testingWin at life with unit testing
Win at life with unit testing
 
Introduction To Testlink
Introduction To TestlinkIntroduction To Testlink
Introduction To Testlink
 
Need for automation testing
Need for automation testingNeed for automation testing
Need for automation testing
 
Full Testing Experience - Visual Studio and TFS 2010
 Full Testing Experience - Visual Studio and TFS 2010 Full Testing Experience - Visual Studio and TFS 2010
Full Testing Experience - Visual Studio and TFS 2010
 
Quality Assurance
Quality AssuranceQuality Assurance
Quality Assurance
 
Qa process 2012
Qa process 2012Qa process 2012
Qa process 2012
 
Test Automation Architecture in Microservices
Test Automation Architecture in MicroservicesTest Automation Architecture in Microservices
Test Automation Architecture in Microservices
 
Test Classes in Salesforce
Test Classes in SalesforceTest Classes in Salesforce
Test Classes in Salesforce
 
1.microsoft visual studio 2010 test manager
1.microsoft visual studio 2010  test manager1.microsoft visual studio 2010  test manager
1.microsoft visual studio 2010 test manager
 
Jenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkJenkins as the Test Reporting Framework
Jenkins as the Test Reporting Framework
 
Keyword-driven Test Automation Framework
Keyword-driven Test Automation FrameworkKeyword-driven Test Automation Framework
Keyword-driven Test Automation Framework
 
Test Automation
Test AutomationTest Automation
Test Automation
 
KeytorcTestTalks #11 - Onur BaĹźkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur BaĹźkirt, Agile Test Management with Testrail KeytorcTestTalks #11 - Onur BaĹźkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur BaĹźkirt, Agile Test Management with Testrail
 
Writing Testable Code
Writing Testable CodeWriting Testable Code
Writing Testable Code
 
automation testing benefits
automation testing benefitsautomation testing benefits
automation testing benefits
 
Reaching for Your Quality Stretch Goals: Testing at Realtor.com
Reaching for Your Quality Stretch Goals: Testing at Realtor.comReaching for Your Quality Stretch Goals: Testing at Realtor.com
Reaching for Your Quality Stretch Goals: Testing at Realtor.com
 
Automation test scripting guidelines
Automation test scripting guidelines Automation test scripting guidelines
Automation test scripting guidelines
 

Andere mochten auch

Moving from Ad Hoc Testing to Continuous Test Data with FitNesse
Moving from Ad Hoc Testing to Continuous Test Data with FitNesseMoving from Ad Hoc Testing to Continuous Test Data with FitNesse
Moving from Ad Hoc Testing to Continuous Test Data with FitNesseJoris Meerts
 
Testing akka-actors
Testing akka-actorsTesting akka-actors
Testing akka-actorsKnoldus Inc.
 
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...mfrancis
 
TestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan MolenaarTestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan MolenaarXebia Nederland BV
 
Fitnesse user acceptance test - Presentation
Fitnesse   user acceptance test - PresentationFitnesse   user acceptance test - Presentation
Fitnesse user acceptance test - PresentationSunil Kumar Gunasekaran
 
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaJavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaWerner Keil
 
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)Peter Kofler
 
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)Jen Wong
 
Automatic web ui testing
Automatic web ui testingAutomatic web ui testing
Automatic web ui testingAlex van Assem
 
Integration and Acceptance Testing
Integration and Acceptance TestingIntegration and Acceptance Testing
Integration and Acceptance TestingAlan Hecht
 
Agile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseAgile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseClareMcLennan
 
Writing Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using FitnesseWriting Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using FitnesseFacundo Farias
 
Fitnesse Testing Framework
Fitnesse Testing Framework Fitnesse Testing Framework
Fitnesse Testing Framework Ajit Koti
 
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Jen Wong
 
Testing In Java
Testing In JavaTesting In Java
Testing In JavaDavid Noble
 
Jira fundamentals
Jira fundamentalsJira fundamentals
Jira fundamentalsVitaliy Patsay
 
Introduction To Jira
Introduction To JiraIntroduction To Jira
Introduction To JiraHua Soon Sim
 

Andere mochten auch (20)

FitNesse, An Introduction
FitNesse, An IntroductionFitNesse, An Introduction
FitNesse, An Introduction
 
Moving from Ad Hoc Testing to Continuous Test Data with FitNesse
Moving from Ad Hoc Testing to Continuous Test Data with FitNesseMoving from Ad Hoc Testing to Continuous Test Data with FitNesse
Moving from Ad Hoc Testing to Continuous Test Data with FitNesse
 
Testing akka-actors
Testing akka-actorsTesting akka-actors
Testing akka-actors
 
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...
 
TestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan MolenaarTestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
 
Fitnesse user acceptance test - Presentation
Fitnesse   user acceptance test - PresentationFitnesse   user acceptance test - Presentation
Fitnesse user acceptance test - Presentation
 
Fitnesse, Watir and Ruby Based Test Automation System
Fitnesse, Watir and Ruby Based Test Automation SystemFitnesse, Watir and Ruby Based Test Automation System
Fitnesse, Watir and Ruby Based Test Automation System
 
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaJavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
 
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
 
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)
 
Automatic web ui testing
Automatic web ui testingAutomatic web ui testing
Automatic web ui testing
 
Integration and Acceptance Testing
Integration and Acceptance TestingIntegration and Acceptance Testing
Integration and Acceptance Testing
 
Agile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseAgile Acceptance testing with Fitnesse
Agile Acceptance testing with Fitnesse
 
Writing Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using FitnesseWriting Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using Fitnesse
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Fitnesse Testing Framework
Fitnesse Testing Framework Fitnesse Testing Framework
Fitnesse Testing Framework
 
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
 
Testing In Java
Testing In JavaTesting In Java
Testing In Java
 
Jira fundamentals
Jira fundamentalsJira fundamentals
Jira fundamentals
 
Introduction To Jira
Introduction To JiraIntroduction To Jira
Introduction To Jira
 

Ă„hnlich wie FitNesse With Scala

Fitnesse With Scala
Fitnesse With ScalaFitnesse With Scala
Fitnesse With ScalaMeetu Maltiar
 
Katalon Studio - GUI Overview
Katalon Studio - GUI OverviewKatalon Studio - GUI Overview
Katalon Studio - GUI OverviewKatalon Studio
 
Testing Big in JavaScript
Testing Big in JavaScriptTesting Big in JavaScript
Testing Big in JavaScriptRobert DeLuca
 
New features in qtp11
New features in qtp11New features in qtp11
New features in qtp11G.C Reddy
 
Biz Talk Server Certification
Biz Talk Server CertificationBiz Talk Server Certification
Biz Talk Server CertificationVskills
 
Guide to Vite JS – Modern Fron-End Development Tool
Guide to Vite JS – Modern Fron-End Development ToolGuide to Vite JS – Modern Fron-End Development Tool
Guide to Vite JS – Modern Fron-End Development ToolAlbiorix Technology
 
open sta testing Certification
open sta testing Certificationopen sta testing Certification
open sta testing CertificationVskills
 
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docx
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docxCASE STUDY InternetExcel Exercises, page 434, textRecord your.docx
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docxketurahhazelhurst
 
Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Massimo Bonanni
 
New features in qtp11
New features in qtp11New features in qtp11
New features in qtp11Ramu Palanki
 
Qtp 11 new enhacements in
Qtp 11 new enhacements inQtp 11 new enhacements in
Qtp 11 new enhacements inRamu Palanki
 
Apex code-fundamentals
Apex code-fundamentalsApex code-fundamentals
Apex code-fundamentalsAmit Sharma
 
Guide to Generate Extent Report in Kotlin
Guide to Generate Extent Report in KotlinGuide to Generate Extent Report in Kotlin
Guide to Generate Extent Report in KotlinRapidValue
 
Making Steaks from Sacred Cows
Making Steaks from Sacred CowsMaking Steaks from Sacred Cows
Making Steaks from Sacred CowsKevlin Henney
 
AspMVC4 start101
AspMVC4 start101AspMVC4 start101
AspMVC4 start101Rich Helton
 
JMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar pptJMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar pptCubet Techno Labs
 
Module 4: Introduction to ASP.NET 3.5 (Material)
Module 4: Introduction to ASP.NET 3.5 (Material)Module 4: Introduction to ASP.NET 3.5 (Material)
Module 4: Introduction to ASP.NET 3.5 (Material)Mohamed Saleh
 
Introducing Deployit 3.9
Introducing Deployit 3.9Introducing Deployit 3.9
Introducing Deployit 3.9XebiaLabs
 
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxBroncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxcurwenmichaela
 
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxBroncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxhartrobert670
 

Ă„hnlich wie FitNesse With Scala (20)

Fitnesse With Scala
Fitnesse With ScalaFitnesse With Scala
Fitnesse With Scala
 
Katalon Studio - GUI Overview
Katalon Studio - GUI OverviewKatalon Studio - GUI Overview
Katalon Studio - GUI Overview
 
Testing Big in JavaScript
Testing Big in JavaScriptTesting Big in JavaScript
Testing Big in JavaScript
 
New features in qtp11
New features in qtp11New features in qtp11
New features in qtp11
 
Biz Talk Server Certification
Biz Talk Server CertificationBiz Talk Server Certification
Biz Talk Server Certification
 
Guide to Vite JS – Modern Fron-End Development Tool
Guide to Vite JS – Modern Fron-End Development ToolGuide to Vite JS – Modern Fron-End Development Tool
Guide to Vite JS – Modern Fron-End Development Tool
 
open sta testing Certification
open sta testing Certificationopen sta testing Certification
open sta testing Certification
 
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docx
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docxCASE STUDY InternetExcel Exercises, page 434, textRecord your.docx
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docx
 
Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!
 
New features in qtp11
New features in qtp11New features in qtp11
New features in qtp11
 
Qtp 11 new enhacements in
Qtp 11 new enhacements inQtp 11 new enhacements in
Qtp 11 new enhacements in
 
Apex code-fundamentals
Apex code-fundamentalsApex code-fundamentals
Apex code-fundamentals
 
Guide to Generate Extent Report in Kotlin
Guide to Generate Extent Report in KotlinGuide to Generate Extent Report in Kotlin
Guide to Generate Extent Report in Kotlin
 
Making Steaks from Sacred Cows
Making Steaks from Sacred CowsMaking Steaks from Sacred Cows
Making Steaks from Sacred Cows
 
AspMVC4 start101
AspMVC4 start101AspMVC4 start101
AspMVC4 start101
 
JMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar pptJMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar ppt
 
Module 4: Introduction to ASP.NET 3.5 (Material)
Module 4: Introduction to ASP.NET 3.5 (Material)Module 4: Introduction to ASP.NET 3.5 (Material)
Module 4: Introduction to ASP.NET 3.5 (Material)
 
Introducing Deployit 3.9
Introducing Deployit 3.9Introducing Deployit 3.9
Introducing Deployit 3.9
 
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxBroncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
 
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxBroncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
 

Mehr von Knoldus Inc.

Mastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML ParsingMastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML ParsingKnoldus Inc.
 
Akka gRPC Essentials A Hands-On Introduction
Akka gRPC Essentials A Hands-On IntroductionAkka gRPC Essentials A Hands-On Introduction
Akka gRPC Essentials A Hands-On IntroductionKnoldus Inc.
 
Entity Core with Core Microservices.pptx
Entity Core with Core Microservices.pptxEntity Core with Core Microservices.pptx
Entity Core with Core Microservices.pptxKnoldus Inc.
 
Introduction to Redis and its features.pptx
Introduction to Redis and its features.pptxIntroduction to Redis and its features.pptx
Introduction to Redis and its features.pptxKnoldus Inc.
 
GraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdfGraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdfKnoldus Inc.
 
NuGet Packages Presentation (DoT NeT).pptx
NuGet Packages Presentation (DoT NeT).pptxNuGet Packages Presentation (DoT NeT).pptx
NuGet Packages Presentation (DoT NeT).pptxKnoldus Inc.
 
Data Quality in Test Automation Navigating the Path to Reliable Testing
Data Quality in Test Automation Navigating the Path to Reliable TestingData Quality in Test Automation Navigating the Path to Reliable Testing
Data Quality in Test Automation Navigating the Path to Reliable TestingKnoldus Inc.
 
K8sGPTThe AI​ way to diagnose Kubernetes
K8sGPTThe AI​ way to diagnose KubernetesK8sGPTThe AI​ way to diagnose Kubernetes
K8sGPTThe AI​ way to diagnose KubernetesKnoldus Inc.
 
Introduction to Circle Ci Presentation.pptx
Introduction to Circle Ci Presentation.pptxIntroduction to Circle Ci Presentation.pptx
Introduction to Circle Ci Presentation.pptxKnoldus Inc.
 
Robusta -Tool Presentation (DevOps).pptx
Robusta -Tool Presentation (DevOps).pptxRobusta -Tool Presentation (DevOps).pptx
Robusta -Tool Presentation (DevOps).pptxKnoldus Inc.
 
Optimizing Kubernetes using GOLDILOCKS.pptx
Optimizing Kubernetes using GOLDILOCKS.pptxOptimizing Kubernetes using GOLDILOCKS.pptx
Optimizing Kubernetes using GOLDILOCKS.pptxKnoldus Inc.
 
Azure Function App Exception Handling.pptx
Azure Function App Exception Handling.pptxAzure Function App Exception Handling.pptx
Azure Function App Exception Handling.pptxKnoldus Inc.
 
CQRS Design Pattern Presentation (Java).pptx
CQRS Design Pattern Presentation (Java).pptxCQRS Design Pattern Presentation (Java).pptx
CQRS Design Pattern Presentation (Java).pptxKnoldus Inc.
 
ETL Observability: Azure to Snowflake Presentation
ETL Observability: Azure to Snowflake PresentationETL Observability: Azure to Snowflake Presentation
ETL Observability: Azure to Snowflake PresentationKnoldus Inc.
 
Scripting with K6 - Beyond the Basics Presentation
Scripting with K6 - Beyond the Basics PresentationScripting with K6 - Beyond the Basics Presentation
Scripting with K6 - Beyond the Basics PresentationKnoldus Inc.
 
Getting started with dotnet core Web APIs
Getting started with dotnet core Web APIsGetting started with dotnet core Web APIs
Getting started with dotnet core Web APIsKnoldus Inc.
 
Introduction To Rust part II Presentation
Introduction To Rust part II PresentationIntroduction To Rust part II Presentation
Introduction To Rust part II PresentationKnoldus Inc.
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Configuring Workflows & Validators in JIRA
Configuring Workflows & Validators in JIRAConfiguring Workflows & Validators in JIRA
Configuring Workflows & Validators in JIRAKnoldus Inc.
 
Advanced Python (with dependency injection and hydra configuration packages)
Advanced Python (with dependency injection and hydra configuration packages)Advanced Python (with dependency injection and hydra configuration packages)
Advanced Python (with dependency injection and hydra configuration packages)Knoldus Inc.
 

Mehr von Knoldus Inc. (20)

Mastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML ParsingMastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
 
Akka gRPC Essentials A Hands-On Introduction
Akka gRPC Essentials A Hands-On IntroductionAkka gRPC Essentials A Hands-On Introduction
Akka gRPC Essentials A Hands-On Introduction
 
Entity Core with Core Microservices.pptx
Entity Core with Core Microservices.pptxEntity Core with Core Microservices.pptx
Entity Core with Core Microservices.pptx
 
Introduction to Redis and its features.pptx
Introduction to Redis and its features.pptxIntroduction to Redis and its features.pptx
Introduction to Redis and its features.pptx
 
GraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdfGraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdf
 
NuGet Packages Presentation (DoT NeT).pptx
NuGet Packages Presentation (DoT NeT).pptxNuGet Packages Presentation (DoT NeT).pptx
NuGet Packages Presentation (DoT NeT).pptx
 
Data Quality in Test Automation Navigating the Path to Reliable Testing
Data Quality in Test Automation Navigating the Path to Reliable TestingData Quality in Test Automation Navigating the Path to Reliable Testing
Data Quality in Test Automation Navigating the Path to Reliable Testing
 
K8sGPTThe AI​ way to diagnose Kubernetes
K8sGPTThe AI​ way to diagnose KubernetesK8sGPTThe AI​ way to diagnose Kubernetes
K8sGPTThe AI​ way to diagnose Kubernetes
 
Introduction to Circle Ci Presentation.pptx
Introduction to Circle Ci Presentation.pptxIntroduction to Circle Ci Presentation.pptx
Introduction to Circle Ci Presentation.pptx
 
Robusta -Tool Presentation (DevOps).pptx
Robusta -Tool Presentation (DevOps).pptxRobusta -Tool Presentation (DevOps).pptx
Robusta -Tool Presentation (DevOps).pptx
 
Optimizing Kubernetes using GOLDILOCKS.pptx
Optimizing Kubernetes using GOLDILOCKS.pptxOptimizing Kubernetes using GOLDILOCKS.pptx
Optimizing Kubernetes using GOLDILOCKS.pptx
 
Azure Function App Exception Handling.pptx
Azure Function App Exception Handling.pptxAzure Function App Exception Handling.pptx
Azure Function App Exception Handling.pptx
 
CQRS Design Pattern Presentation (Java).pptx
CQRS Design Pattern Presentation (Java).pptxCQRS Design Pattern Presentation (Java).pptx
CQRS Design Pattern Presentation (Java).pptx
 
ETL Observability: Azure to Snowflake Presentation
ETL Observability: Azure to Snowflake PresentationETL Observability: Azure to Snowflake Presentation
ETL Observability: Azure to Snowflake Presentation
 
Scripting with K6 - Beyond the Basics Presentation
Scripting with K6 - Beyond the Basics PresentationScripting with K6 - Beyond the Basics Presentation
Scripting with K6 - Beyond the Basics Presentation
 
Getting started with dotnet core Web APIs
Getting started with dotnet core Web APIsGetting started with dotnet core Web APIs
Getting started with dotnet core Web APIs
 
Introduction To Rust part II Presentation
Introduction To Rust part II PresentationIntroduction To Rust part II Presentation
Introduction To Rust part II Presentation
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Configuring Workflows & Validators in JIRA
Configuring Workflows & Validators in JIRAConfiguring Workflows & Validators in JIRA
Configuring Workflows & Validators in JIRA
 
Advanced Python (with dependency injection and hydra configuration packages)
Advanced Python (with dependency injection and hydra configuration packages)Advanced Python (with dependency injection and hydra configuration packages)
Advanced Python (with dependency injection and hydra configuration packages)
 

KĂĽrzlich hochgeladen

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

KĂĽrzlich hochgeladen (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

FitNesse With Scala

  • 1. FitNesse With Scala Meetu Maltiar Principal Consultant Email: meetu@knoldus.com Twitter:@meetumaltiar
  • 2. FitNesse It is an open-source automated framework created for software testing It is excellent tool for collaboration in software development enabling developers, testers and customers to collaborate by writing tests FitNesse is based on Ward Cunningham's framework for Integration Test (FIT) now developed by Robert C Martin
  • 3. FitNesse Getting Stared Download fitnesse-standalone.jar from fitnesse.org Starting Fitnesse is by executing the jar file: java -jar fitnesse-standalone.jar -p 9090 Note: Doing first time will create directories You can now access FitNesse on URL: localhost:9090
  • 4. FitNesse Overview FitNesse Slim System Tests Wiki Fixtures Runner Under Test Results Customer readable Tests
  • 5. FitNesse Overview.. FitNesse works by executing Wiki pages which call custom written Fixtures Fixtures act as a bridge between wiki pages and the System Under Test Fixtures can be written many programming languages like java, Scala...
  • 6. Tests And suites FitNesse has Suite. It is a collection of Tests. When we execute one Suite all tests are run in a Suite. For creating a TaxCalculationSuite, go to localhost:9090/TaxCalculationSuite. FitNesse is smart enough to open a new Suite page. Save it by not adding any contents.
  • 7.
  • 8.
  • 9. FitNesse Wiki Test To create FitNesse wiki test, hover on add button and select “Test” It will open a new test page. Provide TaxCalculationTest name for the Test for now, and save it.
  • 10.
  • 11.
  • 12.
  • 13. FitNesse Wiki Test Writing Wiki Test page is simple. We create wiki tables. Each row in a table is separated by a pipe character. For example a table header of id, name and age is created like this |id|name|age|
  • 14. FitNesse Wiki Test For TaxCalculation test we want to calculate tax on annual salary. Here is a simple rule of Tax. If annual income is more than 100,000 it is 15%, or else it is 10%. The test in FitNesse Wiki must provide input to Fixture code in Scala and we must assert to compare output matched with actual results. |the tax for annual income|200000|is|30000|
  • 15. FitNesse Wiki Test |the tax for annual income|200000|is|30000| is a specification of intent from a Tester or customer. Now, we can build support around this. For us developers, we need to specify jars, classes and Fixture class that we will be executing methods on. For finding libraries and classes we use !path in FitNesse wiki. !define TEST_SYSTEM {slim} !path /Users/meetumaltiar/.sbt/boot/scala-2.9.1/lib/scala-library.jar !path ../lib/fitlibrary-20080812.jar Add above content at top of the test page and save. You will notice proper classpath set.
  • 16. FitNesse Wiki Test We will have to load a specific class on which the methods will be executed. If our Fixture scala class is TaxCalculationFixture in com.knoldus.fixture package. Then, we will have to write following in FitNesse Wiki |import| |com.knoldus.fixture| !|script | TaxCalculationFixture|
  • 17. FitNesse Wiki Test We need to write our test having assertions. We will use DoFixture semantics in our Wiki. |import| |com.knoldus.fixture| !|script | TaxCalculationFixture| |the tax for annual income|200000|is|30000| Above definition means that we have a method in scala class TaxCalculationFixture: def theTaxForAnnualIncomeIs(annualIncome: Double, tax: Double): Boolean
  • 18. FitNesse Wiki Test |import| |com.knoldus.fixture| !|script | TaxCalculationFixture| |the tax for annual income|200000|is|30000| If we use DoFixture then each odd column is a part of a method and each even column is parameter to the method. If method is written in camel case we can write method in FitNesse wiki like a DSL
  • 19. Completed Wiki Test !define TEST_SYSTEM {slim} !path /Users/meetumaltiar/.sbt/boot/scala-2.9.1/lib/scala-library.jar !path ../lib/fitlibrary-20080812.jar |import| |com.knoldus.fixture| !|script | TaxCalculationFixture| |the tax for annual income|200000|is|30000| |the tax for annual income|100000|is|10000|
  • 20.
  • 21.
  • 22. Using DoFixture To start with add a dependency of fitnesse and fitlibrary in your SBT project containing the fixture libraryDependencies += "org.fitnesse" % "fitnesse" % "20121220" libraryDependencies += "org.fitnesse" % "fitlibrary" % "20080812"
  • 23. DoFixture DoFixture is a Scala class extending DoFixture class in FitLibrary DoFixture is a Fixture and acts as a bridge between wiki FitNesse tests and System under test Each odd column in table in wiki corresponds to part of method definition. Each even column has parameters we can pass in function defined in a DoFixture
  • 24. TaxCalculationFixture package com.knoldus.fixture import fitlibrary.DoFixture import com.knoldus.tax.TaxCalculatorService class TaxCalculationFixture extends DoFixture { val taxCalculatorService = new TaxCalculatorService def theTaxForAnnualIncomeIs(annualIncome: Double, tax: Double) = taxCalculatorService.getTaxForAnnualIncome(annualIncome) == tax }
  • 25. TaxCalculatorService package com.knoldus.tax class TaxCalculatorService { def getTaxForAnnualIncome(annualIncome: Double): Double = (annualIncome <= 100000.0) match { case true => annualIncome * 0.10 case false => annualIncome * 0.15 } }
  • 26. Running Tests We can execute an individual FitNesse wiki Test We can execute all tests by running a Suite. Running a suite will run all tests in a Suite We can organize Suites depending on behavioral design of our application.
  • 27.
  • 28. Code is available on Knoldus Github: https://github.com/knoldus/ScalaFitnesse Thanks!!