Haxe에서 FizzBuzz TDD 시도
12705 단어 mocha자바스크립트CoffeeScriptHaxetestem
환경 구축
Haxe
IDE인 FlashDevelop을 설치합니다.
빈 프로젝트도 만들어 둡시다.
TDD
프로젝트 바로 아래로 이동하여 다음과 같이 진행합니다.
쉘$ npm install -g coffee-script
...
$ npm install -g mocha
...
$ npm install expect.js --save-dev
...
$ npm install -g testem
...
$ mkdir test
$ touch test/fizzbuzztest.coffee
$ coffee -cw test/fizzbuzztest.coffee &
이제 fizzbuzztest.coffee가 업데이트되면 자동으로 JavaScript로 변환됩니다.
그런 다음 프로젝트 바로 아래에 testem.json이라는 파일을 만듭니다.
testem.json{
"framework": "mocha",
"src_files": [
"bin/*.js",
"test/*test.js"
],
"launchers": {
"Mocha": {
"command": "mocha test/*test.js -R tap",
"protocol": "tap"
}
},
"launch_in_dev": [
"Mocha"
]
}
testem을 시작합니다.
쉘$ testem
이제 Haxe로 컴파일하거나 테스트를 업데이트할 때 자동으로 테스트가 실행됩니다.
테스트 쓰기(레드)
미안하지만 갑자기 끝까지 씁니다.
fizzbuzztest.coffeeexpect = require 'expect.js'
fizzbuzz = require '../bin/FizzBuzz.js'
describe 'fizzbuzz', ->
f = new fizzbuzz.FizzBuzz # スコープから出したクラスを参照する
it 'return string Fizz when 3 is given', ->
result = f.returnString( 3 )
expect( result ).to.be( 'Fizz' )
it 'return string 2 when 2 is given', ->
result = f.returnString( 2 )
expect( result ).to.be( '2' )
it 'return string Buzz when 5 is given', ->
result = f.returnString( 5 )
expect( result ).to.be( 'Buzz' )
it 'return string Fizz when 6 is given', ->
result = f.returnString( 6 )
expect( result ).to.be( 'Fizz' )
it 'return string Buzz when 10 is given', ->
result = f.returnString( 10 )
expect( result ).to.be( 'Buzz' )
it 'return string FizzBuzz when 15 is given', ->
result = f.returnString( 15 )
expect( result ).to.be( 'FizzBuzz' )
it 'return string FizzBuzz when 15 is given', ->
result = f.returnString( 30 )
expect( result ).to.be( 'FizzBuzz' )
구현(그린)
FlashDevelop에서 FizzBuzz라는 클래스를 만듭니다.
FizzBuzz.hxpackage ;
@:expose( "FizzBuzz" ) // テストから見えるように、クラスをスコープから出す
class FizzBuzz{
public function new() {
}
public function returnString(n : Int) : String {
if ( n % 15 == 0 ) {
return "FizzBuzz";
}
else if ( n % 3 == 0 ) {
return "Fizz";
}
else if ( n % 5 == 0 ) {
return "Buzz";
}
else {
return Std.string(n);
}
}
}
Main.hxpackage ;
import js.Lib;
class Main {
static function main() {
var f = new FizzBuzz();
for (i in 1...100) {
var s : String = f.returnString( i );
trace( s );
}
}
}
이것으로 완성입니다.
수업을 내는 곳이 다소 빠져나갔습니다.
말하자면 FizzBuzz는 무엇입니까? 라는 쪽은 구구 주세요. 붓 무정하고 죄송합니다.
블로그를하고 있습니다 : Weed Software
Reference
이 문제에 관하여(Haxe에서 FizzBuzz TDD 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Feel-Physics/items/c79baeb9c8885cca779e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ npm install -g coffee-script
...
$ npm install -g mocha
...
$ npm install expect.js --save-dev
...
$ npm install -g testem
...
$ mkdir test
$ touch test/fizzbuzztest.coffee
$ coffee -cw test/fizzbuzztest.coffee &
{
"framework": "mocha",
"src_files": [
"bin/*.js",
"test/*test.js"
],
"launchers": {
"Mocha": {
"command": "mocha test/*test.js -R tap",
"protocol": "tap"
}
},
"launch_in_dev": [
"Mocha"
]
}
$ testem
미안하지만 갑자기 끝까지 씁니다.
fizzbuzztest.coffee
expect = require 'expect.js'
fizzbuzz = require '../bin/FizzBuzz.js'
describe 'fizzbuzz', ->
f = new fizzbuzz.FizzBuzz # スコープから出したクラスを参照する
it 'return string Fizz when 3 is given', ->
result = f.returnString( 3 )
expect( result ).to.be( 'Fizz' )
it 'return string 2 when 2 is given', ->
result = f.returnString( 2 )
expect( result ).to.be( '2' )
it 'return string Buzz when 5 is given', ->
result = f.returnString( 5 )
expect( result ).to.be( 'Buzz' )
it 'return string Fizz when 6 is given', ->
result = f.returnString( 6 )
expect( result ).to.be( 'Fizz' )
it 'return string Buzz when 10 is given', ->
result = f.returnString( 10 )
expect( result ).to.be( 'Buzz' )
it 'return string FizzBuzz when 15 is given', ->
result = f.returnString( 15 )
expect( result ).to.be( 'FizzBuzz' )
it 'return string FizzBuzz when 15 is given', ->
result = f.returnString( 30 )
expect( result ).to.be( 'FizzBuzz' )
구현(그린)
FlashDevelop에서 FizzBuzz라는 클래스를 만듭니다.
FizzBuzz.hxpackage ;
@:expose( "FizzBuzz" ) // テストから見えるように、クラスをスコープから出す
class FizzBuzz{
public function new() {
}
public function returnString(n : Int) : String {
if ( n % 15 == 0 ) {
return "FizzBuzz";
}
else if ( n % 3 == 0 ) {
return "Fizz";
}
else if ( n % 5 == 0 ) {
return "Buzz";
}
else {
return Std.string(n);
}
}
}
Main.hxpackage ;
import js.Lib;
class Main {
static function main() {
var f = new FizzBuzz();
for (i in 1...100) {
var s : String = f.returnString( i );
trace( s );
}
}
}
이것으로 완성입니다.
수업을 내는 곳이 다소 빠져나갔습니다.
말하자면 FizzBuzz는 무엇입니까? 라는 쪽은 구구 주세요. 붓 무정하고 죄송합니다.
블로그를하고 있습니다 : Weed Software
Reference
이 문제에 관하여(Haxe에서 FizzBuzz TDD 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Feel-Physics/items/c79baeb9c8885cca779e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
package ;
@:expose( "FizzBuzz" ) // テストから見えるように、クラスをスコープから出す
class FizzBuzz{
public function new() {
}
public function returnString(n : Int) : String {
if ( n % 15 == 0 ) {
return "FizzBuzz";
}
else if ( n % 3 == 0 ) {
return "Fizz";
}
else if ( n % 5 == 0 ) {
return "Buzz";
}
else {
return Std.string(n);
}
}
}
package ;
import js.Lib;
class Main {
static function main() {
var f = new FizzBuzz();
for (i in 1...100) {
var s : String = f.returnString( i );
trace( s );
}
}
}
Reference
이 문제에 관하여(Haxe에서 FizzBuzz TDD 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Feel-Physics/items/c79baeb9c8885cca779e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)