我正在使用xUnit为一个需要查询数据库以验证记录已经存在的方法创建单元测试。在我的测试中,我使用NSubstitute
Mock
我的仓库。
public class MyTestClass
{
public MyTestClass()
{
myRepository = Substitute.For<IMyRepository>();
}
[Fact]
public void My_Test()
{
var myService = new MyService(myRepository);
var result = myService.Create(mockObject);
....
}
这是我引用的服务的实现:
public class MyService
{
public MyService(IMyRepository repository)
{
_repository = repository
}
IMyRepository _repository;
public X Create(MyObject mockObject)
{
var result = _repository.CheckIfExists(mockObject.Name); //This return an NAME for example;
if (result == mockObject.Name)
{
return X.Error("Message...")
}
}
}
问题是:
如何测试
if (result == mockObject.Name)
因为我的仓库是假的?我需要这个信息
return X.Error("Message...")
在测试课上。
如何测试这段代码?