![](/img/trans.png)
[英]Any suggestions on how to run a Selenium test so it checks whether a website exists?
[英]How to create a test that checks whether the record already exists in the database
我正在使用 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)
,因為我的存儲庫是 FAKE? 我需要這條消息在測試類上return X.Error("Message...")
。
如何測試這段代碼?
模擬/替代品需要配置為測試預期的行為
例如
public class MyTestClass {
public MyTestClass()
myRepository = Substitute.For<IMyRepository>();
}
[Fact]
public void My_Test() {
//Arrange
myRepository.CheckIfExists(mockObject.Name).Returns(mockObject.Name);
var myService = new MyService(myRepository);
//Act
var result = myService.Create(mockObject);
//Assert
//....check that the returned result is as expected.
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.