Moq
は、C#で依存関係のあるクラスやインターフェースをモックするためのオープンソースのライブラリ。テスト対象のクラスが依存しているオブジェクトを、代替として実装できる。これにより、特定の環境を作成しなくてもテスト実行を行いやすくなる。
Moq
を使うには、NuGetパッケージマネージャを使用してMoqをインストール。
Install-Package Moq
インターフェース
public interface IUserRepository
{
User GetUserByUsername(string username);
}
テスト実装
using Moq;
using Xunit;
public class Tests
{
[Fact]
public void Sample()
{
// Arrange
var mockUserRepository = new Mock<IUserRepository>();
mockUserRepository.Setup(repo => repo.GetUserByUsername("testuser"))
.Returns(new User { Username = "testuser", Password = "password123" });
var authService = new AuthService(mockUserRepository.Object);
// Act
var result = authService.Login("testuser", "password123");
// Assert
Assert.True(result);
}
}