An example:
namespace XUnitSample.ClassLib.Interfaces
{
public interface ICalculationEngine
{
int Add(int num1, int num2);
int Minus(int num1, int num2);
}
}
namespace XUnitSample.ClassLib
{
public class Cal
{
private readonly ICalculationEngine _calculationEngine;
public Cal(ICalculationEngine calculationEngine)
{
_calculationEngine = calculationEngine;
}
public int Add(int num1, int num2)
{
return _calculationEngine.Add(num1, num2);
}
public int Minus(int num1, int num2)
{
return _calculationEngine.Minus(num1, num2);
}
}
}
namespace XUnitSample.Lib
{
public class CalTest
{
[Fact]
public void Add_Add2Numbers()
{
// Arrange
var mock = new Mock<ICalculationEngine>();
mock.Setup(x => x.Add(1, 1)).Returns(2);
var cal = new Cal(mock.Object);
// Act
var result = cal.Add(1,1);
// Assert
Assert.Equal(result, 2)
}
}
}