Если я правильно понимаю вопрос, вы в основном запрашиваете тест (для вашего примера), например:
if -> Element.ComputedStyle.color = green
then -> test passed
else -> test failed (you have CSS structure errors)
Очевидно, что браузер правильно интерпретирует специфичность.Таким образом, вы действительно проверяете, не привели ли изменения, внесенные вами путем добавления / переопределения CSS, к непредвиденным визуальным последствиям.
Это кажется довольно ручным вопросом, на который нужно ответить, так как вам нужно будет решить, каково каждое из этих правильных состоянийа затем поддерживать тесты.Если вы пойдете по этому пути, я бы посмотрел что-то вроде Backstop.js .Хотя визуальное регрессионное тестирование CSS ДЕЙСТВИТЕЛЬНО сложно, будьте осторожны, сколько вы ожидаете от него.
Ручной путь
Не могли бы вы решить проблему вручную, создав переменную SCSS, которая обычноtransparent
?Затем, когда вы добавляете / меняете код, добавляете эту переменную и меняете цвет на что-то вроде pink
, это действительно очевидно?На этом этапе вы должны увидеть, где что-то переопределяется при рендеринге страницы.
Если вы создаете CSS-фреймворк, я бы протестировал вашу документацию, поскольку в ней должны быть показаны предыдущие примеры, которые могут быть переопределены.
Блоки CSS
Вы также можете заглянуть в API CSS Blocks .Это точно не будет «тест», но API предоставляет ошибки определения объема и компиляции, которые могут помочь вам обнаружить некоторые из этих проблем раньше, чем позже.
Вот соответствующая часть:
С новой системой разрешения CSS Blocks, каскадные конфликты будут обнаружены для вас, прежде чем вы даже узнаете, что они существуют, и вам больше никогда не придется вести войну специфичности.