Keep on moving

あんまりまとまってないことを書きますよ

servletのテスト

ServletなものへのテストはServletTesterを使って以下のように書くらしい。
ちなみにJUnit 4.10 + Jetty 7.Xでの書き方です。

http://docs.codehaus.org/display/JETTY/ServletTester

import org.junit.Before;
import org.eclipse.jetty.testing.HttpTester;
import org.eclipse.jetty.testing.ServletTester;
import org.junit.Test;

import static junit.framework.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

public class WebAppTest {
	private ServletTester tester;
	private HttpTester request;
	private HttpTester response;

	@Before
	public void setUp() throws Exception {
		this.tester = new ServletTester();
		this.tester.setContextPath("/");

		this.tester.addServlet(ApiWebAppServlet.class, "/api/*");
		this.tester.start();

		this.request = new HttpTester();
		this.response = new HttpTester();
		this.request.setMethod("GET");
		this.request.setHeader("Host", "tester");
		this.request.setVersion("HTTP/1.1");
	}
	@Test
	public void testHomepage() throws Exception {
		this.request.setURI("/api/node/");
		this.response.parse(tester.getResponses(request.generate()));
		assertTrue(this.response.getMethod() == null);
		assertEquals(200, this.response.getStatus());
		assertEquals("Hello World", this.response.getContent());
	}
}

Scalatra+scalatra-lift-jsonでJSON

ScalatraでJSONをrequest/responseで扱いたい場合にはscalatra-jsonを使うのが便利。

導入方法

build.sbtに以下のように追加します。
※バージョンは適宜変えてください。

libraryDependencies ++= Seq(
"org.scalatra" % "scalatra" % "2.1.1",
"org.scalatra" % "scalatra-lift-json" % "2.1.1"
)

使用例

↓のエントリを真似して書いてみた例

http://d.hatena.ne.jp/tototoshi/20120526/1338032893

感想

RESTful APIでpost/put/deleteなどでJSONを受ける際に、parsedBodyにpattern matchがすぐに使えるので
ソースコードの見通しが良くなるのが非常に嬉しいですね。

「JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技」という本が出ます。

id:cimadai (@)さんにお誘いを受けまして執筆のお手伝いをさせていただきました。

JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技

JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技

この本ってどんな本?

Webアプリケーションを作るときの杖(not 魔法の杖) or 冒険の地図というのがコンセプトの一部です。

JavaScriptの知識はWebを検索すればすぐに見つかるようになりました。
しかし、見つかるものはすでに古くなっていたり、いい記事にたどり着くまでに時間がかかる事も多く、
こういうのをなんとかしたいというのがこの本の目的です。

O'Reilly Japan - Head First JavaScriptを読み終えた初心者から中上級者まで広く楽しんでいただけるような材料を取り揃えさせていただきました。
特にデバッグ&テストに多くのページを用意しております。

id:cimadaiさん、id:rokujyouhitoma(@) をはじめ, id:kiris60(@)さん、浜辺 将太 さん、藤木 祐介 さんら著者達が
選りすぐった読んですぐに役に立つ知識、イベントのような押さえておくべき知識やHTML5,
最新のライブラリの話など盛りだくさんの一冊になっております。

この本の使い方

アプリを開発するときに傍らにおいて使う事を想定しています。
是非他のJavaScriptの良著ともに開発を行っていただけると良いなと思っております。
本書中でも何冊か詳解したうちの何冊化を紹介しておきます。

JavaScript 第6版

JavaScript 第6版


テスト駆動JavaScript

テスト駆動JavaScript


Secrets of the Javascript Ninja

Secrets of the Javascript Ninja

まとめ

初めて読み通した技術書であるサイ本の日本語版の第6版が出る時期に本書を出せたのは、感慨深いものがあります。
本書は8月31日に発売予定です。是非一度手に取って読んでいただけると幸いです。

たぶん日本で一番速いPlay!2.0本感想

前から出る出るっていう話だけ出ていたPlay!framework2.0本が出ましたね。
Java/Scalaで別々の本になっています。

Manning: Play for Scala
Manning: Play for Java

作者は、Scala版はドキュメントの責任者をやってる Peter Hilton、Java版は1.2.X系のリーダーNicolas leroux

とりあえず両方買って現状のものを斜め読みしたので現状(4/27)の感想を書いときます。

感想





まとめ

まだ全体が書かれてないので何とも言えないのですが、一般的なWebシステムの作り方+テスト+Deployが
中心になりそうです。Tutorial++って感じですね。
上でも書いたけど、どちらかというと初心者〜中級者向けがターゲットみたいです。
これから始めたいって方は買ってもいいとおもいます。
あとJavaの方が若干技術よりな話題が多い気がする。

Play2.0の目玉機能である非同期なところとか、Comet/Websocket周りとかの話はなさそう。
個人的には速いところPart III: Advanced techniques が読みたいですね。
あと現状MEAPなので、これ読んでみたいとかはOpen Forumで言えるといいなー
http://www.manning-sandbox.com/forum.jspa?forumID=810