Я читал книгу по модульному тестированию, ниже это обозначено как плохой код в книге:
public class CustomerTests
{
private Store _store;
[Fact]
public void Test1()
{
//act
_store = new Store(5);
...
}
[Fact]
public void Test2()
{
//act
_store = new Store(100);
...
}
}
Как мы знаем, когда xUnit или другие фреймворки тестирования, создается новый экземпляр тестового класса (конструктор запускается перед каждым тестом в классе) для каждого теста, поэтому в моем примере, поскольку у меня есть два метода тестирования, есть два экземпляра CustomerTests
, поскольку они являются разными объектами / экземплярами, поэтому _store
instance / свойство в другом экземпляре, следовательно, также независимы, что означает, что один тестовый метод изменяет свой _store
, а другой _store
в другом экземпляре не затрагивается. Так что технически они не являются «общим состоянием», почему нам нужно избегать этого?