ASP.NET CoreでIntegration Test

ASP.NET Coreを細々と勉強しています。ASP.NET Coreでテストはどうやればいいんだろうと思い調べてみました。
特に、URLベースでアクセスしてそのレスポンスに対して精査をするという事をしようと思います。

今回は公式ドキュメントとか若干記述が足りないところがあり、スタックオーバーフローなどをさまよう羽目になりました。
同じような事で困っている人の役に立てたらうれしいかなと思っています(´・ω・`)

下準備

  • Visual Studio for Mac
  • ソリューションを一つ
    • ASP.NET CoreのWebアプリケーションプロジェクト
    • xUnitのテストプロジェクト

今回はついにリリースされたVisual Studio for Macで作業しましたが、別にWindowsでも変わらないと思います。
各プロジェクトは単純に作成してビルドだけしています。

テストプロジェクト側の設定

プロジェクト画像

テストプロジェクト側には、ASP.NET Coreのプロジェクト(TestApp01)を参照しておきます。
また、パッケージとして「Microsoft.AspNetCore.TestHost」を加えます。

最初のつまづき

当初Integration testing | Microsoft Docsを見ながら作業を行ったのですが、どうしてもうまく行かず四苦八苦しました。
このドキュメントのまま作業をすると

  • appsetting.json関連でエラーが発生
  • View(Razor)関連でエラーが発生

といった現象に悩まされました。

これらを参照したところ無事テストが実行出来るようになりました。

とりあえず動作するソース

色々ごちゃごちゃ細かく書くよりも作ったものを書きたいと思います。

using Xunit;
using System.IO;
using System.Threading.Tasks;
using System.Net.Http;
using System.Reflection;
using System.Linq;
using Microsoft.AspNetCore.Mvc.Razor;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
using Microsoft.Extensions.PlatformAbstractions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.CodeAnalysis;
using TestApp01;

namespace TestApp01Tests
{
  public static class WebHostBuilderExtensions
  {
    private static string ContentPath
    {
      get
      {
        var path = PlatformServices.Default.Application.ApplicationBasePath;
        var contentPath = Path.GetFullPath(Path.Combine(path, $@"../../../../{nameof(TestApp01)}"));
        return contentPath;
      }
    }

    public static IWebHostBuilder ConfigureTestContent(this IWebHostBuilder builder)
    {
      return builder.UseContentRoot(ContentPath);
    }

    public static IWebHostBuilder ConfigureTestServices(this IWebHostBuilder builder)
    {
      return builder.ConfigureServices(services =>
      {
        services.AddMvcCore();
        services.Configure((RazorViewEngineOptions options) =>
        {
          var previous = options.CompilationCallback;
          options.CompilationCallback = (context) =>
          {
            previous?.Invoke(context);

            var assembly = typeof(Startup).GetTypeInfo().Assembly;
            var assemblies = assembly.GetReferencedAssemblies()
                         .Select(x => MetadataReference.CreateFromFile(Assembly.Load(x).Location))
                         .ToList();
            assemblies.Add(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName("mscorlib")).Location));
            assemblies.Add(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName("System.Private.Corelib")).Location));
            assemblies.Add(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName("Microsoft.AspNetCore.Html.Abstractions")).Location));
            assemblies.Add(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName("Microsoft.AspNetCore.Razor")).Location));
            assemblies.Add(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName("Microsoft.AspNetCore.Razor.Runtime")).Location));
            assemblies.Add(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName("Microsoft.AspNetCore.Mvc")).Location));
            assemblies.Add(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName("System.Runtime")).Location));
            assemblies.Add(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName("System.Threading.Tasks")).Location));
            assemblies.Add(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName("System.Dynamic.Runtime")).Location));
            assemblies.Add(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName("System.Text.Encodings.Web")).Location));

            context.Compilation = context.Compilation.AddReferences(assemblies);
          };
        });

      });
    }
  }

    public class UnitTest1
    {
    private readonly TestServer _server;
    private readonly HttpClient _client;

    public UnitTest1()
    {
      _server = new TestServer(new WebHostBuilder()
        .UseStartup<Startup>()
          .ConfigureTestContent()
                .ConfigureTestServices()
      );
      _client = _server.CreateClient();


    }

        [Fact]
        public async Task Test1()
        {
      var response = await _client.GetAsync("/");
      response.EnsureSuccessStatusCode();

      var responseString = await response.Content.ReadAsStringAsync();

      // Assert
      Assert.Contains("Hello World!",
        responseString);
        }
    }
}

簡単な解説

大半がテスト用のホストの準備です。テスト本体はUnitTest1クラスのTest1メソッドとなります。

UnitTest1クラスのコンストラクタでテスト用のホストとクライアント作成し、それを利用してテストを行います。
コンストラクタでConfigureTestContentConfigureTestServicesが呼ばれています。

これらが上の方で定義しているWebHostBuilderExtensionsクラスで拡張メソッドとして定義されています。

ConfigureTestContent拡張メソッドについて

テストプロジェクトでそのままホストを起動すると、コンテンツのルートディレクトリの位置が変わってしまいます。
そのために、appsetting.jsonファイルなどが読めずにエラーとなります

この拡張メソッドではそのコンテンツルートディレクトの正しい位置を設定するという機能を持っています。

ConfigureTestServicesメソッドについて

上のConfigureTestContent拡張メソッドでコンテンツのディレクトリを正しく設定したとしてもViewの描画でエラーが発生します。
View上で使用している各種クラスがみつからないようです。
.NET初心者でいまいちよくわかっていないのですが、このメソッドにより各クラスのアセンブリを読み込ませる事によりエラーが発生しなくなるということだと思います。

そんなわけで

無事テスト出来るようになったんですが、View関連はもう少しスマートになりませんでしょうかね。。。個人的にテストフレームワーク使ってテストってほとんどやったことないので、何もかもが勉強でした(;・∀・)

鋸山へ行ってきました。

GW中のことですが友人と鋸山へハイキングへ行ってきました。
なんとなく写真も撮ったので書いて見ます。

aaa

ルート

浜金田駅からスタートし当初の予定では車力道で登る予定でしたが、実際には最初の方の分岐を間違え安兵衛井戸と沢コースで登りました。
鋸山頂上からは日本寺経由で保田駅へ向かいました。

現地までの電車

ホーム写真

9時9分、浜金田着の電車で向かいました。君津駅?から先は電車がおおよそ一時間に1本しかありません。
乗り遅れると次は一時間後になりかねないので余裕を持って移動したいところです(´・ω・`)

電車自体はGWという事もあり混雑していました。席はすべて埋まり、立っている人も比較的多いですが都心のラッシュのような混み方ではありません。

近辺にコンビニあるかと思えば軽く目視した感じだとありませんでした。ちょっと話を聞いた感じだとちょっとあるいたところにあるらしいのですが・・・未確認です。

登り

動物写真 洞窟写真 頂上写真

最初に書いた通り、当初は車力道で登る予定でした。最初の分岐で間違え左に曲がり入ってしまった為です。
観光協会かな?地図を頂いたのですが今回歩いた安兵衛井戸と沢コースに関しての記述がわかりづらく勘違いしてしまった模様です。
分岐点にもう少し分かりやすく看板に書いたほうがいいような気がします。健脚向けですとか。

ノコギリ山の地図はとても見やすくていいですね。

実際登り始めると、鋸山でハードなコースの為か人が少なくまた実にハイキングっぽい(観光ぽくない)コースで楽しめました。
途中、子タヌキ?動物がいたりしてちょっと驚きました。
こんな間近にこの手の野良動物を見たのは初めてかもしれません。
また観光的ルートとは違うので軍手があったほうが歩きやすいと思います。

上の写真のように途中真っ暗い30mぐらいのトンネルがあります。私はヘッドライトを持ち歩いていますがiPhoneの懐中電灯機能を使い通り抜けました。
ライトないと真っ暗な感じになりますので短いとはいえライトを持っておいたほうがいいように思います。

このトンネルあたりから東の肩と呼ばれるあたりまではちょっと道がわかりづらく、若干「あれ?これであってる?」とか思いながら歩いたりしています。

頂上は比較的狭く、ゆっくり出来る感じではありませんでした。
休憩だけして日本寺方面に向かいました。

頂上から日本寺まで

途中1 途中2 途中3

鋸山の頂上から日本寺までですが、一旦下り方面へ。
途中、展望台など見晴らしいのいいところなどがあり、登りと違いどんどんと行き交う人数が増えて行きます。

随分下ったなと思う頃、地獄覗きを下から覗けるぐらいになったあと、日本寺方面への分岐があります。

写真はありませんがここから再び登りです(;・∀・)
実のところ頂上通った後でもう下りしかないだろうと思っていた後でしたので結構ショックです_| ̄|○

日本寺の入り口までひたすら階段が続きます。

日本寺

景色1 景色2 景色3

日本寺の拝観料は600円だったかと思います。GWということあり、かなり混んでいました。
日本寺がどういうところかは日本寺の公式サイトを見ていただければと思います。

中に入るとすぐ百尺観音が見え、そこから少し上のほうに上がると有名な地獄のぞきがあります。
今回は一時間半待つよという助言を入り口で聞き、実際に列を見るとすごい・・・・_| ̄|○ il||li

近くからいい景色は取れたので満足して、地獄のぞき自体は素通りしてきました。

そこから保田駅へ向かいます。ここからお寺の中という事で、極めて歩きやすく舗装された道路です。
途中おっきい大仏があり、そこでひと休憩しつつ下ります。

保多駅まで

日本寺でてから保田駅までは約1.5kmほどの工程です。
ほぼ平坦な道のりの為、あとはだらだら歩きました。

駅までのルートに関しては随所に道しるべがあるので迷うことはないと思います。

特筆すべきはなんか猿っぽいのが木の上にいた!
よく見えなかったけどカナリそれっぽかったです。野生の動物をハイキング中に見るのはホント貴重です。

帰りの自動車

実は昼食中々ありつけず食べたのは16:00ぐらいという有様。
そして帰りは友人の自動車で途中まで送ってもらったのですが・・・・、
GWのせいで混雑ひどすぎだろヽ(`Д´)ノプンプン

自動車で高速使ってスィーっと行けるかと思ったら渋滞渋滞で大変さが半端ないです。

鋸山登るときは混んでいる時期は避けて行くことをおすすめします

全体を通しての感想

しょうゆサイダー

とりあえず行く時期を間違えたかなって思っています。GWの超混雑なタイミングでなくての他の5月の休日とかのほうが混雑度が少なくストレスが少なかったのではないかと。

それから観光地的なイメージでしたたが、ルート間違えたせいだと思いますが(笑)意外と登りがいがあり楽しかったです。まさか野生動物見れるとも思わなかったので非常に良かったです。

また日本寺からの景色は非常に良かったので行ってよかったと思います。

ただ・・・うちからあまりにも遠いので日帰りシンドイです_| ̄|○

なんか醤油サイダーなるものがあったので飲んでみたのですが、悪くはない味でした。ヤバそうなものを飲んだつもりだったので微妙な気持ちになりました(;・∀・)

Tyrell FXを購入しました

色々悩みましたがTyrell FXを購入しました。
他にも候補がありましたが、決めてとなったのは情報量の多さかなと思っています。

私自身はそんなに詳しくないので調べて分からないとちょっとこまります。
そういった意味でタイレルFXの情報量の多さは非常に助かっています。
次点としてはPATTO BIKEでしたが、情報量の少なさ、2ch等でのトラブル報告など、それと試乗もしていませんのでこちらは外しました。

上記サイトにはTyrell FXの情報が多くあり非常に助かりました。

さて購入して実際に乗ってみた感想をDEFY4と比べつつ書いてみたいと思います。

購入時のスペック

Tyrell FXはコンポやホイールなどがある程度の選択が可能になっています。
私が購入したスペックは下記の通りです

  • コンポはシマノ105
  • ホイールはAM-10へアップグレード
  • スタンドつけた

です。ホイールアップグレードオプションですが、Web等を見るとAM-10とありますが実際にはAM-10 plusとなりました。
ワイドリム化したり、スペックに違いがあるので注意したほうがよいかもしれません。

詳細につきましてはローロさんのWebページに載っている情報が分かりやすいです。(【限定モデル】 Tyrell FX spl3 ドロップが到着!

よかったと思ったところ

デザイン・塗装が美しい

刈場坂峠

他のBLOGでも散々既出ですがデザイン・塗装は美しいと思うんですよ。このデザインと塗装がとても気に入っています。
色々なカラーが選べるのもGoodだと思います。

ただし標準色以外を選んだ場合、納車までは1.5ヶ月程掛かるようです。

全然関係ないですが、タイレルのクロモリロードのRXはタイレルのスラントデザインじゃなくて普通のロード風味なのであんまり惹かれなかったりします。
いいお値段しますね(´・ω・`)

ギアの切り替えかバシッと決まる(Clarisと比べて)

試乗車のときはそれほど感じなかったけど、納車して走り始めて感動しました。
カチッカチッとギアの切り替えがバッチリ決まるのに感動です。

特にリアの2/3段落としの切り替えがすごくスムーズで使いやすいです。またフロントのギアの切り替えもスムーズになりました。

こりゃぁ最初からこんなの乗ったらClarisとかに戻れなくなっちゃいます(;・∀・)

でかい言うけど輪行そんなに問題ないよ(DEFY4と比べて)

BLOGとかで折りたたみの事を検索していると、タイレルFXの折りたたみサイズはでかい。と書かれていることが多いです。
実際に折りたたんで見ても、他の折りたたみに比べて確かに大きいです。

ただ正直なところ、ロードに比べれば圧倒的に輪行は楽だと思うんですね。ロードは基本的に輪行するように出来ていないと私は考えていまして(´・ω・`)

タイレルFXの折りたたんだサイズというのはロードバイクの縦型輪行袋の横サイズとほぼ同様か、ちょっと大きいぐらいかと思います。ただし特筆すべきは縦サイズで縦はロードバイクの半分ぐらいの高さです。

ロードバイクの輪行において縦型の輪行にすると、接地面積が小さくなり置きやすくなる反面高さは結構あるため肩がけで持ち歩いてもかなり持ち歩きづらいと思います。その点、高さが少ないTyrell FXであれば袋にちょっと手を突っ込んでフレーム掴んで歩くと結構歩きやすいです。

Tyrell FXを買うような人たちはおそらく週末輪行してサイクリングといったことをする方々と思いますのでこのサイズでそんなに問題になることはないかなと思います。でもブロンプトンの小ささにはコンプレックスを覚えちゃいますけどね(;・∀・)

ここがダメねん

速度維持しんどい

タイヤが20インチ(406)です。スピード上げると速度維持がつらいです(;・∀・)
巡航速度だけで言えば間違いなく価格1/3のDEFY4のほうが速いです。 速度目当てでTyrell FXを買わないほうがよいと思います。

カッコよさに惚れたとか輪行簡単にしたいとか別の目的がないと、遅いとかなって絶望する未来が見えますw

やっぱりホイールサイズが大きいと慣性の力(でいいのかな?)の働きが大きいですね。特にDEFY4のは最初についている重いホイールでもありますし、そういう意味でも慣性の力が強そうです。

DEFY4でくるくる回してスピード乗ってきたら足止めて、だらーっと走ったりするのですがTyrell FXでは速度が落ちやすいのでできずくるくる回し続ける感じです(;・∀・)

意外と塗装ハゲやすい?

ショックなので写真載せないですが、一部塗装はげました_| ̄|○
どっかにぶつけたかもしれませんし、石が跳ねたのかもしれません。ただハゲました(´;ω;`)ウッ…

私はとにかく物使いが荒い自覚があるのでハゲるだろうなぁとは思っていました。しかしコレほど早くやってしまうとは_| ̄|○

とりあえず、3Mの表面保護用テープを張ってその場を凌いでいます。折りたたみなので折りたたむ部分でこすったりするところがあり心配なのであちこちこのテープ張っていますw
実際には予想外のところが擦れていたりするんですが(;・∀・)

デカチェーンリング不可?

ちょっと思うのですが、足がある人ならちょっと物足りないギア比なんじゃないかなと。ちょっと計算したのですが

DEFY4(34T x 32T): ギア比1.06 * 外周2105 = 2231.3mm
TyrellFX(39T x 28T): ギア比1.39 * 外周1470 = 2043.3mm

一番軽いインナーローのひと漕ぎで20cmの差がでます。DEFY4は32Tであるにもかかわらずです。
普段からロードで11-25Tあたりを乗っている人には明らかに軽すぎで物足りないはず。解決するにはデカチェーンリングですが・・・。

折りたたんだ感じだとデカチェーンリングは無理なのではないでしょうか?

出来ればここを改造して欲しい(;・∀・)

乗ってみた感じ、こうなったらサイコーだなと思うところ適当に。

まずはタイヤ。同じ20インチでも451になりませんでしょうか?451のタイヤの自転車を乗ったとき、スピードに乗ったときの維持の楽さが全然違いました。
それと406では少ないタイヤの選択肢が増えるのでたすかります。

406では太いタイヤが多く、細めのタイヤを選択するにもシュワルベのDuranoもしくはOneしか選択肢が無いように思います。Oneは新しくなった際に25cから28cと太くなり25cの細いタイヤがなくなってしまいました_| ̄|○

一方451ではパナレーサーでは23c、シュワルベでもOneが25cとなっていて細いタイヤが存在します。細めのタイヤの選択肢が多いし順高性能も高いのでぜひとも451を採用して頂きたいのです(´・ω・`)

次に・・・って思ったけどそれほどないか(;・∀・)

タイレル FXで輪行サイクリングは楽しいです(●^o^●)


このGWでそれなりに走りました。合計で大体240km。
荒川CR走ったり、峠登ったり、三浦半島で御朱印サイクルラリーしたりアチコチ行っています。
起点を自分の家にしなくても良いというのは本当にいいですね。
とにかく飽きがきません。

まだまだ行きたいところもたくさんありますし、楽しみつつそしてフレームから塗装ハゲが発生しないように祈りつつ乗っていきたいと思います(´ω`)

DEFY4のスプロケットを交換してみました

今回DEFY4のスプロケットを交換しました。
交換後は非常に良くなったので、消耗品の交換は躊躇しちゃいけないなと思った・・・・そんな話です。

[NEWスプロケ](http://www2.gyafuuuun.com/wp-content/uploads/2017/04/IMG_0757.jpg)

経緯

DEFY4を乗っていてギアを変えるとき特定のギアだけ違和感があって、ギアチェンジ後「チャリ・・・チャリチャリ」みたいな感じで音が出ていました。
その音は少しずつ大きくなっているようで気になっていたのです。

特定のギアというのはリアのロー側から2段目でいつも行っている自転車屋に聞きに行ったら

「アウターのとき下から2つ目まではキアチェンジしないようお願いしている」

との事。
Webで調べたらチェーンのたすきがけは良くないとのことで、アウターローは良くないと書いているページは多いものの

なんか釈然としないのでTwitterつぶやいてたら、ハクセン鳩ヶ谷さんが

ディレイラーハンガーは一月程前に変えたばかりなので、スプロケが怪しい。スプロケは4000km走って交換なしですし交換時かも?

ということで交換することにしました。

どのスプロケを買う?

DEFY4 2016にはSRAMのPG850の11-32Tが使われています。

http://www.giant.co.jp/giant16/bike_datail.php?p_id=00000042#specifications

このPG850の歯構成は11-12-14-16-18-21-26-32のようです。

今回交換したのはSHIMANO(シマノ)のCS-HG41 8S 11-32Tで歯構成は11-13-15-18-21-24-28-32です。

通勤用途だと大体重いギアでは18Tぐらいまで主に使うギアで、その上のほうはほとんど使いません。
今まで11Tは一回ですら使ったことがあるかどうか・・・。

また100kmぐらいのライドをすると体力なしの私は疲れて来て、21-32Tあたりのギアを多用するようになります。
そういうことを考えても軽めのギアの多いCS-HG41がいいかなと思いそちらを購入することにしました。

交換作業

https://www.riteway-jp.com/maintenance/mainte_37sproket.html

工具さえあれば、↑のような感じにやるだけでさっくりと終わります。
ちょっと最初力を入れないとなのでおっかなびっくりですが(;・∀・)

当初は自転車屋さんに頼むつもりでしたが自分でやって正解でした。

[NEWスプロケ](http://www2.gyafuuuun.com/wp-content/uploads/2017/04/IMG_0759.jpg)[NEWスプロケ](http://www2.gyafuuuun.com/wp-content/uploads/2017/04/IMG_0776.jpg)

むかーし、ESCAPE R3乗ってた時に使ってた工具を仕様しました。
10年ぶりぐらいに出してきたらめっちゃ錆とりました(´;ω;`)ウッ…

問題なく使えたのでよかったです。

また交換後はリアディレイラーの調整が必要なのかなとかちょっと思っていたのですが、スプロケの交換だけだったらリアディレイラーの調整なくても大丈夫っぽいですね。
変更後調整が必要かなとドキドキしてましたけど良かったです(笑)

交換後の使用感

なんでもっと早く交換しなかったんだろう・・・!

というのが今の気持ちです。
ほんと素晴らしいです。まず困っていたチャリチャリなる異音がなくなり精神的に楽になりましたが、何よりも漕いだ感じが非常に快適に。
この感覚をなんと行っていいのか、新品のスプロケはダイレクト感が違うの?すごく走りやすいです。

交換後、127kmのサイクリングしてきましたがこの距離私にとって初めてです。
後半はヘロヘロで軽めのギアでずっと漕いでいましたが、21T,24T,28Tの3つのギアを使って走っておりました。これが前だと21T,26Tの2つでしたのでギアの選択肢が一つ増えてありがたかったです。

普通のロード乗りの人だったらSRAMのほうが乗りやすいのかなぁなんて思わないでもないですが・・・どうなんでしょう?

最後に

ハクセン鳩ヶ谷さんには感謝です。
Twitterでのリプライがなければ当面放置だったかもしれません。
こう、何かお買い物とかで御礼出来ればなぁとも思うのですが、タイレルFXは結局地元の自転車屋さんで買ってしまいましたし。
なんか申し訳ない気持ちがw

こんな場末のBLOGで見てお客さんが増えるかわかりませんが、直接店舗行きいいお店だなと思いましたしTwitterでの対応もありがたくおすすめ出来るお店だと思います。
興味を持つ方がいたら是非。

〜飯能〜山伏峠〜西武秩父〜星音の湯(まで行けず)サイクリング

最近、二週間に一回ぐらいは100km弱ぐらいのサイクリングをしています。
今回は帰りは輪行でのサイクリングをすることにしました。

片道45kmぐらいから、片道90kmになると行動範囲がぐっと広がりますねヽ(=´▽`=)ノ
そんなわけで本日は以前から行ってみたかった西武秩父まで行ってみることにしました。

今回の目玉は初めてのヒルクライム・山伏峠と同じく始めての輪行でしょうか。

山伏峠まで

有間ダムのあるところまでは以前もサイクリングで行ったことありますし、また山伏峠の入り口である名郷まではハイキングで何度かいったことがあるのであんまりドキドキ感もなく普通に進みました。

鳥居観音

鳥居観音を見つけたりして、普段バス移動だと気が付かないところが新鮮で楽しいですね。
ただ地味に登りで少しずつ少しずつ体力が削られます。
名郷に来るときにはすでに「帰りたい」とかちょっと思ってました(;・∀・)

ちなみに途中も次から次えとロード乗りの人に抜かされています(汗)

山伏峠

なんか自転車の人がそれなりにいますな。
とりあえずトイレ行ったりパン食べたりしながらちょっと休憩をします。
すでにプチ疲れているので心配で。

山伏峠に関しては私が書くよりも
大東京ヒルクライム!さんの
ページを見て頂いたほうがいいと思います。

ページによってはギアはアウターのまま登る人がいるらしいと書いてありましたが、
この私は一度足をつきゆっくり5分ぐらい?休憩をしてようやく登りきれました。

山伏峠

アウターで登りきるって・・・信じられない。
みんなすごいなー。貧脚で検索したサイトのほとんどが貧脚詐欺で信じられない_| ̄|○

Stravaとかで結果を見ると下位20%ぐらい中にいるみたいです。

足もそうですが、それよりも息と心が負けた感じがします(;・∀・)
心拍計とかつけたほうがいいのかなぁとかちょっぴり思いました。

山伏峠のてっぺん〜西武秩父まで

ほとんど下りです。これがゴホウビか!と思いました。
途中、芦ヶ久保の道の駅で軽く休憩&食事をしたりと楽しい時間を過ごして西武秩父へ。
途中から国道299号線に入りますが交通量が多いです。
ダンプも通りますし気をつけたいところです(;・∀・)

西武秩父ではまずは特急電車を予約して、そこから温泉へ向かうことにしました。
そうそう西武秩父駅併設の祭の湯が今度オープンしますね。
建物はほぼてきているようです。

祭の湯

ここに気を取られたせいか、気が緩んだせいか、段差の乗り上げの際に転んでしまいました。

STI

STIレバーが曲がってるーΣ(゚Д゚)
これ治るのでしょうか。。。とか思いながら自転車を温泉まで走らせました。

9.5%

えと。9.5% Σ(゚Д゚)
疲れ切っていた私にとどめをさしました。とりあえず西武秩父に引き返し本日のサイクリングは終了しました。

途中、わらじカツ丼食べたくて、安田屋日野田店へ寄ったのですが人がものすごく並んでいて諦めてきました(´・ω・`)

輪行して帰る

西武秩父の駅前で輪行袋にしまうのですが、駅前は比較的広々としていますので作業場所には困らなかったです。
予めと旧予約の際に、輪行ではじめてなんです。といったら、車両の一番後ろの場所をとって頂けました。
券売機ではなく、窓口で購入するのが良さそうです。

輪行

一番後ろの席の場合、写真のように後ろに自転車を置きシートを倒して固定できます。
通常の電車より高いですけど、西武秩父から帰るときは特急で帰りたいなぁと思いました。

自転車のバラしも組み立ても、非常にまごまごとして解体組み立て共に20分以上かかった気がします。
駅に余裕を持って行ったのですが、ちょうどいい時間に。
また、輪行袋への入れ方が分からなくなって、iPadを開いてPDFを見ながら作業していました。
IT化バンザイw

まとめとか今後とか

ヒルクライムはつらいですが、色々なところに行ってみたいなぁと思っています。
ですので、これからも秩父方面は走ってみたいなぁと思っています。

同じ秩父へ向かうにしても、山伏峠から正丸峠、刈場坂峠を経由して行く道があるみたいです。
299号を使うより車通りが少ないので安心出来ます。
そのうち体力つけたらそちら経由で行ってみたいなぁとか。

輪行に関しては、なんとか出来たもののやっぱり個人的には700Cロードでの輪行はしたくないですね(;・∀・)
タイレルFX購入して納品待ちなので、今後はそちらが活躍するようになりそうですヽ(=´▽`=)ノ

行きたいところは多々あれど体力気力根性技術etcがないのがツライです。
鍛えるとかそーゆーハードなことは苦手ですが、ぼちぼちとゆっくりやっていきたいかな、と。

楽しくまったり行きたいんですがそのためには体力が必要だと思い、とても悩ましい気持ちになっています(;・∀・)