CARVIEW |
Select Language
HTTP/2 200
date: Sun, 27 Jul 2025 13:20:37 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"b3297316daade573ed08ecc65685bfd5"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=LuLLza%2FsafpeS3MjONpmTw6aloW%2BSSodSe8B8hTnbmnMtcVFBMzY8kh0pm5hpWLw49mQPvfrS3LXxX2sY2qHOGsTeILD%2BG9Zo8%2FrsbsXu1e99%2FUwQoXDcLRT%2BQFHEBs6lr%2BVQu2%2FQTPQEbrXT3tbiwjF9yvgwGxclSRBNeVGjvM2XhC5E7l2by9FMGZzV%2FWqgGcyyQIN%2BZkIiga1GtOMUai3MhIdpkXMYoLJ20P96N7AdVP5MB%2Fote4JBJcwkRu06Nstwl04Z5jhQD%2Fb0LuMbA%3D%3D--p0EA%2FxgxDYNBPv%2Bi--naMhPmBKocFValB%2FIA2PZA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.367847002.1753622436; Path=/; Domain=github.com; Expires=Mon, 27 Jul 2026 13:20:36 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Mon, 27 Jul 2026 13:20:36 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: BC98:10904:50E895:6BCB83:688627A4
Example: Simple Calculator · flashquartermaster/Cuke4AS3 Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 2
Example: Simple Calculator
flashquartermaster edited this page Oct 8, 2012
·
1 revision
Create a new project in your Flash Ide and create a new main class called Calculator.
Add the following code or get it from the Examples projects:
package
{
import flash.display.Sprite;
public class Calculator extends Sprite
{
public var stack:Vector.<Number>;
public function Calculator(){
stack = new Vector.<Number>();
}
public function push(n:Number):void{
stack.push(n);
}
public function divide():Number{
return stack[0] / stack[1];
}
public function add():Number{
return stack[0] + stack[1];
}
}
}
Make sure it compiles!
Make your features directory, step_defintions directory, wire file, Cuke4AS3_Suite as described in How to Use Cuke4AS3
For the feature file use the following:
Feature: Math
As a hopeless mathematician
I want to be able to do some simple math
Scenario: Adding two numbers
Given I have entered 4 into the calculator
And I have entered 1 into the calculator
When I want it to add
Then the current value should be 5
Scenario: Dividing two numbers
Given I have entered 3 into the calculator
And I have entered 2 into the calculator
When I want it to divide
Then the current value should be 1.5
Now in you features.step_definitions.Calculator_Steps.as add the following code:
Note that it is leveraging Hamcrest and Dconsole support so make sure that "Use Bundled FlexUnit" and "Use Bundled DConsole" are checked on your config tab.
And Don't forget to add this Calculator_Steps class to your Cuke4AS3_Suite
package features.step_definitions
{
import com.furusystems.logging.slf4as.global.debug;
import flash.display.Sprite;
import org.flexunit.Assert;
import org.flexunit.asserts.fail;
import org.hamcrest.assertThat;
import org.hamcrest.core.not;
import org.hamcrest.object.equalTo;
public class Calculator_Steps
{
private var _calculator:Calculator;
private var _calculatorResult:Number;
public function Calculator_Steps()
{
_calculator = new Calculator();
}
[Given(/^I have entered (\d+) into the calculator$/g)]
public function pushNumber( n:Number ):void
{
_calculator.push( n );
debug( "Calculator_Steps : pushNumber :",n);
}
[When(/^I want it to (\w+)$/)]
public function pressButton( button:String ):void
{
debug( "Calculator_Steps : pressButton :",button);
if( button == "divide" )
{
_calculatorResult = _calculator.divide();
}
else if( button == "add" )
{
_calculatorResult = _calculator.add();
}
else
{
throw new Error("Unknown operation : " + button);
}
}
[Then(/^the current value should be (.*)$/)]
public function checkValue( value:Number ):void
{
debug( "Calculator_Steps : checkValue :",value);
//Manual check
if (_calculatorResult != value)
{
throw new Error("Expected " + value + ", but got " + _calculatorResult);
}
//Hamcrest check
assertThat( value, equalTo( _calculatorResult ) );
}
public function destroy():void
{
debug("Calculator_Steps : destroy");
_calculator = null;
}
}
}
Clone this wiki locally
You can’t perform that action at this time.