image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2007年10月12日 | トップページ | 2007年10月14日 »

2007年10月13日

2007-10-13

ピックアップ:イノベーションの神話, XMLが嫌われている, etc...

- http://pub.cozmixng.org/%7Ehiki/programming/?%28Test%3A%3AUnit%29%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB
> > プログラミングWiki - (Test::Unit)チュートリアル

- http://jp.rubyist.net/magazine/?0021-Rspec
> > Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)

- http://d.hatena.ne.jp/kiwamu/20071012/1192183687
> > Amazon の検索結果を AutoPagerize に対応してみました - kiwamu日記

- http://www.ibm.com/developerworks/jp/java/library/j-javascripting2/
> > 動的言語を動的に呼び出す、第 2 回: 実行時にスクリプトを発見し、実行し、そして変更する

- http://www.ibm.com/developerworks/jp/linux/library/l-cairo/
> > cairo を使ったクロスプラットフォーム・グラフィックス

- http://www.ibm.com/developerworks/jp/xml/library/x-xjavaforum5.html
> > XML と Java 技術: 3 つのタイプの XML パーシスタンス

- http://www.ibm.com/developerworks/jp/ysl/library/websphere/y-was-wbsf602-1/?ca=drs-
> > WBSF v6.0.2 入門: 第1回 オントロジーの拡張

- http://www.oreilly.co.jp/books/9784873113456/
> > oreilly.co.jp -- Online Catalog: イノベーションの神話

- http://itpro.nikkeibp.co.jp/article/COLUMN/20071011/284276/
> > XMLが嫌われている?:ITpro

> ...
今後,開発系のフレームワークやツールは,XML定義を覆い隠す方向に進むだろう。XMLデータへのアクセス手法も,これまでよりスマートで簡単にできるクラス群やライブラリがどんどん出てくるだろう。そしてXMLを処理するアプライアンスも拡充されるに違いない。つまり,XMLが浸透すればするほど,その面倒さを意識させない現実的な対応が進んでいくということだ。
> ...

blog を書くひとは、XML なんて意識していないよな。でも RSS/トラックバック/記事投稿ができているのだ。

- http://e0166.blog89.fc2.com/blog-entry-307.html
> > HTMLテーブルの行を見やすくするテーブルクロスJavaScript*ホームページを作る人のネタ帳

- http://blog.nikkeibp.co.jp/arena/google/2007/10/starsuitegoogle.html
> > Google調査隊: 無料のStarSuiteとGoogleドキュメントの連携ワザでグッドなプレゼンテーション

- http://www.itmedia.co.jp/news/articles/0710/12/news036.html
> > 首都圏で改札機動かず 再起動で解消 - ITmedia News

- http://www.future-planning.net/x/modules/news/article.php?storyid=2733
> > FPN-なるほどと言われる、企画書の書き方

> ...
4. お客様のメリットを強調する
こちらは○○ができます、ではなく、それをすることでお客様にどんなメリットがあるのか、どんなよいことが起きるのかをわかりやすく、具体的に解説する。
> ...

rspec で java クラスをテストする例

rspec をつかって java クラスをテストする例を作ってみた。

1. 簡単な java クラスを定義。
2. Rakefile をつくる。
     jruby -S spec ... として、上で作成した java クラスのメソッドの挙動をテストする。

1. java クラス
===========

$ cat MyClass.java
package foo;

public class MyClass {
    public int add(int a, int b) {
        return a + b;
    }

    public int sub(int a, int b) {
        return a - b;
    }

    public static void main(String[] args) {
        System.out.println("This is MyClass.");
    }
}

2. Rakefile
=========

$ cat Rakefile
require 'rake'

MYLIB ="build/lib"
MYCLASS_JAR = "MyClass.jar"

task :default => :compile

desc "Compile the native Java code."
task :compile do
  mkdir_p "build/classes"
  sh "javac -d build/classes #{FileList['**/*.java'].join(' ')}"
end

desc "Generate jar."
task :jar =>[:compile] do
  mkdir_p "#{MYLIB}"
  sh "jar cvf #{MYLIB}/#{MYCLASS_JAR} -C build/classes/ ."
end

desc "Remove build folder"
task :clean do
  rm_rf "build"
  sh "rm -f *~"
end

desc "Run sample program."
task :run_sample => [:jar] do
  sh "CLASSPATH=#{MYLIB}/#{MYCLASS_JAR}:$CLASSPATH;jruby callMyClass.rb"
end

desc "Run rspec."
task :spec =>[:jar] do
  sh "CLASSPATH=./build/lib/MyClass.jar:$CLASSPATH;jruby -S spec -c -fs MyClass_spec.rb"
end

まだ、Rakefile の書き方に慣れていない。もっと洗練した書き方ができるように勉強しないと...

spec ファイル
===========

$ cat MyClass.rb

require 'rubygems'
require 'java'

include_class 'foo.MyClass'

describe MyClass, "add method" do
it "should return sum" do
   myClass = MyClass.new
   myClass.add(1,2).should == 3
end
end

describe MyClass, "sub method" do
it "should return sub" do
   myClass = MyClass.new
   myClass.sub(1,2).should == -1
end
end

ここでは
  add(1,2) が 3 を返すこと
  sub(1.2) が -1 を返すこと
をチェックしている。

実行例:
======

$ rake spec
javac -d build/classes MyClass.java
jar cvf build/lib/MyClass.jar -C build/classes/ .
Java::Foo::MyClass add method
- should return sum

Java::Foo::MyClass sub method
- should return sub

Finished in 0.339 seconds

2 examples, 0 failures

おまけ:
=======
ruby から java クラスを呼び出す簡単な例

$cat callMyClass.rb
# set CLASSPATH=$CLASSPATH:MyClass.jar
# jruby callMyClass.rb

require 'rubygems'
require 'java'

include_class 'foo.MyClass'

obj = MyClass.new
p obj.add(1,10)
p obj.sub(1,10)

xfy/xvcd 用につくった xpath関数、インストラクションの簡易テストに junit でなく
Rspec をつかうことも面白いかもしれない。

« 2007年10月12日 | トップページ | 2007年10月14日 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク