Karateによるテスト自動化(書きかけ)
Karate
動作環境
2021/02/09時点での最新版は0.9.6だが、Nashorn前提になっている。
しかしJDK15以降でNashornは削除されているため、JDK15以降では動作しない。
プロジェクトの作成
mvn archetype:generate -DarchetypeGroupId="com.intuit.karate" -DarchetypeArtifactId=karate-archetype -DarchetypeVersion="0.9.6" -DgroupId="com.example" -DartifactId=myproject
SpringでList自体をBeanとして定義する
Listの要素にしたいクラス(Config.java)
package com.example.utillist; public class Config { private int num; private String data; public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getData() { return data; } public void setData(String data) { this.data = data; } }
XML定義(config.xml)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <util:list id="configList" value-type="com.example.utillist.Config"> <ref bean="config0" /> <ref bean="config1" /> <ref bean="config2" /> </util:list> <bean id="config0" class="com.example.utillist.Config"> <property name="num" value="0" /> <property name="data" value="this is cofig 0" /> </bean> <bean id="config1" class="com.example.utillist.Config"> <property name="num" value="1" /> <property name="data" value="this is cofig 1" /> </bean> <bean id="config2" class="com.example.utillist.Config"> <property name="num" value="2" /> <property name="data" value="this is cofig 2" /> </bean> </beans>
利用
package com.example.utillist; import java.util.List; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ImportResource; @SpringBootApplication @ImportResource("classpath:config.xml") public class UtillistApplication { public static void main(String[] args) { var applicationContext = SpringApplication.run(UtillistApplication.class, args); List<Config> list = (List)applicationContext.getBean("configList"); list.forEach(config -> { System.out.println(config.getNum() + ":" + config.getData()); }); } }
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- 作者:株式会社NTTデータ
- 発売日: 2016/07/20
- メディア: Kindle版
2点間の距離
Selenideでclickに失敗するのを回避
Selenideで↓のようにclickを実行しようとすると、失敗するケースがありました。
$(By.id("id1")).click();
sendKeysを試したらうまくいきました。
$(By.id("id1")).sendKeys(Keys.ENTER);
原因はきちんと追っていないのですが、、、id1に紐づくのがsubmitボタンではなく、onclickでXMLHttpRequest.send()とかやってるとダメみたいでした。
- 作者:Satya Avasarala
- 発売日: 2014/09/18
- メディア: 大型本
組み込みのSQLiteを利用する
createの例
import sqlite3 connection = sqlite3.connect('test.db') # 無い場合は新規作成される cursor = connection.cursor() cursor.execute('create table kokyaku (id int, name varchar(64))') connection.commit() connection.close()
insertの例
import sqlite3 connection = sqlite3.connect('test.db') cursor = connection.cursor() kokyaku_data = [ (1, 'ペガ'), (2, 'ドラコ'), (3, 'グリ'), ] for kokyaku in kokyaku_data: cursor.execute('insert into kokyaku values (?, ?)', kokyaku) connection.commit() connection.close()
selectの例
import sqlite3 connection = sqlite3.connect('test.db') cursor = connection.cursor() for row in cursor.execute('select * from kokyaku'): print(row) connection.close()
ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD の除去
Eclipseに導入したSpotBugsで、「インスタンスメソッドからstaticフィールドへの書き込み」がエラー検知されました。↓こんなコードです。
public class WriteStatic { private static String s; public void method(String value) { s = value; } }
諸事情によりソースは修正できないため、このルールを除外しようと思いました。
SpotBugsの設定([Preferences]-[Java]-[SpotBugs])の、[ディテクター構成]を眺めても、該当しそうな項目がない…ということで、一つ一つしらみつぶしに調べたのでメモです。
結論としては[ディテクターID]が「UnreadFields」のチェックを外せばよいようです。
正直、関連がよくわかりませんでした。。。
JavaScriptメモ(随時更新)
変数はletで宣言すべき
varは古い機能である。
let a;
文字列と数値の演算
"+"だけが文字列として演算される。
console.log("12" + 3); // "123" console.log("12" - 3); // 9 console.log("12" * 3); // 36 console.log("12" / 3); // 4