0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Blazor】bUnitを使用してHTMLタグ内の値を確認する方法

Last updated at Posted at 2024-09-23

【Blazor】bUnitを使用してHTMLタグ内の値を確認する方法

はじめに

Blazorで使用できる単体テストフレームフレームワークにbUnitについて詰まったところを共有します。

問題

公式チュートリアルを見るとチュートリアルではHTMLタグごと比較している。
CSSなどレイアウト系についてはロジックのテストとは分けたい。
(CSS制御のテストもロジックとは別にしたい)

対象コード

@page "/counter"
@rendermode InteractiveServer

<PageTitle>Counter</PageTitle>

<h1>Counter</h1>

<p role="status">Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
    private int currentCount = 0;

    private void IncrementCount()
    {
        currentCount++;
    }
}

テストコード

    [TestMethod]
	public void ClickingButtonIncrementsCounter()
	{
		// Arrange
		var cut = Render(@<Counter />);

		// Act - click button to increment counter
		cut.Find("button").Click();

		// Assert that the counter was incremented
		cut.Find("p").MarkupMatches(@<p role="status">Current count: 1</p>);
	}

解決策

レンダリングした要素からはTextContentClassListなどから内部の値を取得できる。

	[TestMethod]
	public void ClickingButtonIncrementsCounter3()
	{
		// Arrange
		var cut = Render(@<Counter />);

		// Act - click button to increment counter
		cut.Find("button").Click();

		// Assert that the counter was incremented
		var p = cut.Find("p");
		Assert.AreEqual("Current count: 1", p.TextContent);
	}

おわりに

Bunitはまだまだポテンシャルを秘めていそうなので使いこなしたいです。

参考

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?