0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Java基礎知識 研修備忘録 15日目~18日目

Posted at

単体テスト、結合テスト、総合テスト/システムテスト

種類 略称 テスト実施単位
単体テスト UT,PT,CT クラス単位
結合テスト IT,CT,JT,LT 画面単位
総合テスト/システムテスト ST,PT 本番想定でシステム単位

フレームワーク

メリット:自分で全ての機能を作成する必要はない
=開発にかかる時間とコストを削減可能

例)Struts,Struts2,Spring,SpringBoot

MVCモデルアーキテクチャ

種類 説明
Model 「ビジネスロジック」「業務処理」(DBと接続)=システムの中で提供するサービス処理
View 「見た目」=主に画面を相当(表示部分)
Controller サービス処理を行う「Model」と画面表示を行う「View」をコントロールする役割を持つ

⇒この3つの役割を分離して実装、それらが連携して処理を進める方式

Webサーバとアプリケーションサーバ

Webサーバ:Apacheなど
アプリケーションサーバ:Tomcatなど
=ローカルに仮想サーバを起動、そこからソースコードを展開してWebアプリケーションを走らせる

JSPとサーブレット

JSP:Webページに埋め込まれたJavaプログラム(「%」で囲まれたソースコード)をサーバ上で実行して結果を反映したページを動的に生成できる技術

サーブレット:Javaを使ってサーバサイドプログラム(=Webアプリケーション)を作るための技術

サーブレットのスコープ

1.requestスコープ:次の画面まで保持
2.sessionスコープ:主に時間で切れる
3.applicationスコープ:(クライアントではない)サーバが立ち上がっている間保持

Struts

struts-config.xmlファイル=Strutsの動作を定義するファイル
・アクションフォームBeanのクラス定義
・リクエストURLとそれに対応するアクションクラスの定義
・HTML入力フォームに対応するアクションフォームBeanの定義
・アクション終了時の遷移先情報の定義
・メッセージリリースファイル名の定義
⇒要素名:Action/属性:path が必須

forward,type,includeのうち1つは書く必要がある
・forward:このActionへのリクエストを実行するServletかjspファイルへのContextにおける相対パス

・include:typeで指定されたActionをインスタンス化して呼ぶ代わりに実行するServletかjspファイルへのContextにおける相対パス

・type:このActionを処理するActionクラスの完全修飾名、forwardかincludeがないとき必要

・input:入力チェックでエラーが発生したときに遷移するjspのパスを指定する(nameが必要)

・name:アクションフォームのBeanにアクセスする際のリクエスト属性

・scope:アクションフォームを取り出すスコープを"session","request"で指定する(省略時は"session")

・validation:Actionを呼び出す前に入力チェックをONなら"true",OFFなら"false"にする

Strutsの追い方

1.URLの終わりが「~.do」の場合、StrutsのActionが実行されている

2.Strutsの設定ファイルである「struts-config.xml」を開く

3.「path="/~"」(1.から.doを除去した記述)を探すと実行されているActionが特定できる

4.特定したaction要素のtype属性の値(FQCN)を確認し、Actionクラスを特定

5.特定したActionクラスの中身(基本はexecuteメソッド)を見る

6.executeメソッドの中でreturn文を探す
 return mapping.findForward("(遷移先を文字列で指定)");

7.struts-config.xmlに戻りaction要素の子要素forwardを確認

8.forward子要素のname属性が6.の文字列と一致するものが今回のforward先だと特定できる

9.特定したforwardのpath属性が遷移先のjspファイルである

validation.xmlの見方

<field property = ~ depends = "required,maxlength,mask">

required:必須チェック(入力しないと(空だと)エラー)
maxlength:最大の長さ(桁数)
mask:正規表現に合致するかどうか

※maxlengthとmaskはタグで囲む

<msg name = "required" key = "errors.required">
<arg position = "0" key = "ユーザID" ……>

1行目のkeyは、application.propertiesに記述されている
2行目でエラーメッセージの変数を定義する

依存性の注入(Dependency Injection)

・依存とは:あるクラスが別のクラスをフィールドで持ったりメソッドで利用したりすること

・注入とは:変数にインスタンスを代入すること(newする際に発生)

バージョン管理ツール

・Subversion(SVN)
・CVS
・Git など

コミット:ローカルで作ったソースコードを(テストした上で)サーバにアップロードすること

更新:チェックアウトとも
   サーバに上げられたソースコードをダウンロードすること

関連するソースコードはまとめてコミットする
(不十分だとエラーが出る)

SVNの操作事項

・最上位のプロジェクトで右クリック
 →チーム→リポジトリーと同期化

・ローカルからクラスを削除したときも、
 リポジトリーと同期化→コミットでサーバからも削除

・他人にソースを変えられたくない場合は
 ソースを右クリック→チーム→ロック

・競合が発生した場合はローカルのものをデスクトップなどに保存してから競合した最新ファイルを更新。差分を確認しマージしたらコミット

SI Object Browser

データベース開発ツール=A5-M2の仲間

対応データベース
・Oracle Database
・PostgreSQL
・SQL Server
・MySQL など

Excelでデータ出力も可能

JUnit

単体テストツール
JUnitを拡張したものがDJUnitであり、カバレッジレポートを出力することもできる

アノテーションの種類

JUnit4 JUnit5 解説
@BeforeClass @BeforeAll テストクラスの最初に必ず実行するセットアップメソッド
@AfterClass @AfterAll テストクラスの最後に必ず実行するティアダウンメソッド
@Before @BeforeEach 各テストメソッドの前に必ず実行するセットアップメソッド
@After @AfterEach 各テストメソッドの後に必ず実行するティアダウンメソッド
@Test @Test 実際のテストロジックを書くメソッド
@DisplayName @DisplayName JUnitテストクラスメソッドの表示名

・assertEqualsなどで期待値と実行値を比較し問題なければ緑、エラーがあれば赤で表示
・コンストラクタは@BeforeEachの前に実行

log4j

ログ出力のフレームワーク

ログレベル 情報量
FATAL 少ない(重要度が高い)
ERROR
WARN
INFO
DEBUG
TRACE 多い(重要度が低い)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?