Общие понятия/методы поблочного тестирования в JavaScript против различных браузеров?

class App extends React.Component {
  state = {
    show: true
  };

  showhide = () => {
    this.setState({ show: !this.state.show });
  };

  render() {
    return (
      <div className="App">
        {this.state.show && 
          <img src={logo} className="App-logo" alt="logo" />
        }
        <a onClick={this.showhide}>Show Hide</a>
      </div>
    );
  }
}
5
задан Jeff 2 September 2009 в 03:20
поделиться

5 ответов

Это определенно запутанная и динамичная область веб-разработки прямо сейчас. На мой взгляд, есть несколько важных отличий в функциях JS-тестирования:

  • чистые модульные тесты, которые проверяют простой код Javascript. Вы можете утверждать, что a + b = 3 или что-то еще. У нас было всего несколько проблем, которые подпадают под эту категорию. При обсуждении вариантов есть множество альтернатив JSUnit (порт JUnit). Они подразделяются на TDD и BDD и варианты наименования внутри этих категорий.
  • Javascript + DOM-тесты. Очень большая часть кода, написанного в наши дни, посвящена манипулированию DOM. например. assertEqual ('
    ', $ ('div'). Wrap ('a')); Для тестирования JS на основе DOM вам необходимо перейти на тестирование в браузере или используйте библиотеку, например env.js.
  • Есть также mocking & stubbing (smoke), async и другие помощники

Есть два места, где можно запускать тесты:

  • вне браузера тестирование (обычно выполняется быстрее, поэтому их можно использовать в среде TDD)
  • тестирование в браузере (медленнее, сложнее, но обеспечивает более точные результаты кросс-браузерного тестирования)

Selenium запускается в браузере, поэтому он отлично подходит для интеграционных тестов. Если у вас больше ничего не работает, это хорошая отправная точка. Это' s существует уже несколько лет и поддерживает большинство популярных браузеров и языков. Просмотр подобного скринкаста может быть полезным. И эта документация может дать вам представление о том, как будут выглядеть тесты. Есть также немало других обучающих программ и скринкастов, но многие из них увязли в техническом дуду, которое вам наплевать, поэтому вы должны быть избирательными.

Наконец, вот пример из blue ridge , который представляет собой набор инструментов, собранных вместе для тестирования вне браузера (и ручного тестирования в браузере) для Rails:

Screw.Unit(function() {
    describe("Your application javascript", function() {
        it("accesses the DOM from fixtures/application.html", function() {
            expect($$('.select_me').length).to(equal, 2);
        });
    });
});

Это единственный тест, использующий тест синтаксиса, подобный rspec, который пара элементы есть. Надеюсь, это поможет!

Просмотр подобного скринкаста может быть полезным. И эта документация может дать вам представление о том, как будут выглядеть тесты. Есть также немало других обучающих программ и скринкастов, но многие из них увязли в техническом дуду, которое вам наплевать, поэтому вы должны быть избирательными.

Наконец, вот пример из blue ridge , который представляет собой набор инструментов, собранных вместе для тестирования вне браузера (и ручного тестирования в браузере) для Rails:

Screw.Unit(function() {
    describe("Your application javascript", function() {
        it("accesses the DOM from fixtures/application.html", function() {
            expect($$('.select_me').length).to(equal, 2);
        });
    });
});

Это единственный тест, использующий тест синтаксиса, подобный rspec, который пара элементы есть. Надеюсь, это поможет!

Просмотр подобного скринкаста может быть полезным. И эта документация может дать вам представление о том, как будут выглядеть тесты. Есть также немало других обучающих программ и скринкастов, но многие из них увязли в техническом дуду, которое вам наплевать, поэтому вы должны быть избирательными.

Наконец, вот пример из blue ridge , который представляет собой набор инструментов, собранных вместе для тестирования вне браузера (и ручного тестирования в браузере) для Rails:

Screw.Unit(function() {
    describe("Your application javascript", function() {
        it("accesses the DOM from fixtures/application.html", function() {
            expect($$('.select_me').length).to(equal, 2);
        });
    });
});

Это единственный тест, использующий тест синтаксиса, подобный rspec, который пара элементы есть. Надеюсь, это поможет!

но многие из них увязли в техническом дуду, о котором вы не заботитесь, поэтому вы должны быть избирательными.

И, наконец, вот пример из синего гребня , который представляет собой набор вытащенных инструментов вместе для тестирования вне браузера (и ручного тестирования в браузере) для Rails:

Screw.Unit(function() {
    describe("Your application javascript", function() {
        it("accesses the DOM from fixtures/application.html", function() {
            expect($$('.select_me').length).to(equal, 2);
        });
    });
});

Это единственный тест, использующий тест синтаксиса, подобный rspec, в котором есть пара элементов. Надеюсь, это поможет!

но многие из них увязли в техническом дуду, о котором вы не заботитесь, поэтому вы должны быть избирательными.

И, наконец, вот пример из синего гребня , который представляет собой набор вытащенных инструментов вместе для тестирования вне браузера (и ручного тестирования в браузере) для Rails:

Screw.Unit(function() {
    describe("Your application javascript", function() {
        it("accesses the DOM from fixtures/application.html", function() {
            expect($$('.select_me').length).to(equal, 2);
        });
    });
});

Это единственный тест, использующий тест синтаксиса, подобный rspec, в котором есть пара элементов. Надеюсь, это поможет!

4
ответ дан 14 December 2019 в 08:56
поделиться

Проверьте jsTestDriver. Я думаю, что это один из лучших:

Цель JsTestDriver - создать Средство выполнения тестов JavaScript, которое:

легко интегрируется с непрерывным строит системы и позволяет запускать быстро тестирует несколько браузеров, чтобы облегчить разработку стиля TDD.

http://code.google.com/p/js-test-driver/

2
ответ дан 14 December 2019 в 08:56
поделиться

Вы можете рассмотреть возможность использования шаблона презентатора для вашего JavaScript и просто использования простых модульных тестов. В блоге Google Testing есть неплохие ресурсы.

Я бы начал здесь:

http://googletesting.blogspot.com/2009/02/with-all-sport-drug-scandals-of-late.html

Я сделал это в проектах Flex (ActionScript) для всего моего кода пользовательского интерфейса и обнаружил, что он работает очень хорошо. Вы хотите изолировать свою функциональность, чтобы избежать тестирования вещей, которые уже были тщательно протестированы поставщиками браузеров.

1
ответ дан 14 December 2019 в 08:56
поделиться

You can try to use Test Swarm

0
ответ дан 14 December 2019 в 08:56
поделиться

Я слышал о Селен иногда. Я никогда им не пользовался, но, возможно, он вам поможет.

Selenium Remote Control (RC) управляет вашим тесты в нескольких браузерах и платформы. Настройте свои тесты в своем предпочтительный язык.

Я также нашел статью в блоге: Модульное тестирование в JavaScript , в которой упоминается следующее: Ищу лучший инструмент для модульного тестирования JavaScript .

0
ответ дан 14 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: