Используя mocks, вы можете просто передать A
mock из B
, который проверит, что set
был вызван с соответствующим значением.Если у вас нет фиктивной инфраструктуры, в JavaScript вы можете просто создать объект:
b = {
setCalled: false,
expectedValue: <expected>
set: function(val) {
<check that val == this.expectedValue>
this.setCalled = true;
}
}
в тесте, который вы настроили b
, создайте A
с указанным b
, затем вызовитеA.foo
и убедитесь, что b.setCalled
изменено на true
.Вы также можете добавить метод get к b
, чтобы проверить A.bar
.
. В этом случае вам также следует проверить запах Feature Envy - когда два класса тесно связаны между собойследует убедиться, что вы не используете что-то неправильно.Это может быть хорошо в вашем реальном примере, но это стоит проверить.