[Nashorn] 関数の省略記法を使ったassert
投稿日: 2015/12/05 14:22:00
小さなコード片の動作確認に使えるassertです。
1. 実行するスクリプト(assertTest.js)
function assert(f) {if(!f())throw new Error(f.toSource());}
function assertEq(f,x) {var r=f();if(r!==x)throw new Error(f.toSource()+", expected=${x}, actual=${r}");}
assert(function() typeof String === "function");
try {
assert(function() typeof java.lang.String === "object");
} catch(e) { print(e.stack); }
assert(function() typeof java.lang.String === "function");
assertEq(function() typeof String, "function");
try {
assertEq(function() typeof java.lang.String, "object");
} catch(e) { print(e.stack); }
assertEq(function() typeof java.lang.String, "function");
2. jjsで実行する
>jjs -scripting -fullversion assertTest.js
nashorn full version 1.8.0_66-b18
Error: function() typeof java.lang.String === "object"
at assert (assertTest.js:1)
at <program> (assertTest.js:5)
Error: function() typeof java.lang.String, expected=object, actual=function
at assertEq (assertTest.js:2)
at <program> (assertTest.js:9)