私はGoにJavaScriptテストスイートを書こうとしています。Google GoとChromeをインターフェースする方法
Goで単体テストを作成し、ブラウザに読み込まれたWebアプリケーションに対して実行することを想定しています。
私はtest
JavaScriptオブジェクトをこの目的のためにグローバル名前空間に入れました。だから、私はテストしたいさまざまなコンポーネントに "フック"を持っています。
このスクリプトをChromeで読み込み、test
にインターフェイスを公開して、Goからブラウザ内のJavaScript関数にアクセスできるようにすることはできますか?
例:
// JavaScript関数上記の
// Intentionally, and cautiously, emplace "test" into the global namespace
// In practice I would make this a singleton :^D
test = (typeof test == "undefined") ? {} : test;
// Employ the method invocation pattern to append "test" with function "cheesePrice()"
// ES6 fat arrow function
test.cheesePrice = (type) => {
let p = 0;
switch (type) {
case "cheddar" : { p = 9.99; break; };
case "swiss" : { p = 6.49; break; };
case "gouda" : { p = 7.49; break; };
default : { // throw; }
}
return p;
}
// Example call
test.cheesePrice("swiss"); //-> 6.49
、どのように私は囲碁スクリプト内で、test.cheesePrice()を呼び出し、戻り値を受け取ることができますか?このようなもの(疑似コード);
// Imagine here browserHook is an interface into Chrome
// Enabling us to invoke the method above
func getJsCheesePrice(cheeseType string) float32 {
return browserHook.test.getPrice(cheeseType);
}
func main() {
assert.Equal(getJsCheesePrice("cheddar"), 9.99);
}