获得业力测试以使用静态HTML文件

时间:2016-10-20 03:00:30

标签: jasmine karma-runner riot.js

我有一个HTML文件,我想在其上运行一些测试:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />
  <title>Karma Test</title>
  <link rel="stylesheet" href="http://cdn.jsdelivr.net/normalize/3.0.3/normalize.css" />
</head>

<body>
  <!-- Basic Buttons -->
  <rui-button id="test1">Test</rui-button>

  <!-- Disabled Buttons -->
  <rui-button id="test2" disabled>Test</rui-button>
  <rui-button id="test3" disabled="disabled">Test</rui-button>
  <rui-button id="test4" disabled="{ true }">Test</rui-button>

  <script src="http://cdn.jsdelivr.net/riot/2.6.2/riot.js"></script>
  <script src="rui-full.js"></script>
  <script>
  riot.mount('*');
  </script>
</body>

</html>

我设置了我的karma.conf,我认为是正确的:

module.exports = function(config) {
  config.set({
    browsers: ['PhantomJS'],
    frameworks: ['jasmine'],
    plugins: [
      'karma-jasmine',
      'karma-jasmine-html-reporter',
      'karma-html2js-preprocessor',
      'karma-chrome-launcher',
      'karma-phantomjs-launcher',
      'karma-riot'
    ],
    preprocessors: {
      '**/*.html': ['html2js']
    },
    files: [
      { pattern: '../../build/demo/rui-full.js', included: true, watched: false, served: true },
      './**/*.html',
      './**/*.spec.js'
    ],
    reporters: ['progress', 'kjhtml'],
    singleRun: true,
    html2JsPreprocessor: {
      processPath: function(filePath) {
        return filePath.split('/')[1];
      }
    }
  });
};

我写了一个简单的简单测试:

describe('rui-button tests', function() {

  beforeEach(function (done) {
    document.body.innerHTML = __html__['ui-button.html'];
  });

  it('Create basic button', function() {
    var el = document.querySelector('#test1');
    expect(el).toBeTruthy();
    console.log(el.innerHTML)
  });
});

现在beforEach正常工作,并设置了html。但它没有按预期工作。我不确定rui-full.js脚本是否正在加载。我不认为它是el.innerHTML只是&#34;测试&#34;,它没有被riot.js标记取代。

我的设置是否正确?有没有办法注销任何错误?

我正在用cli运行我的测试:

karma start tests/karma.config.js 

1 个答案:

答案 0 :(得分:0)

您必须在代码中安装代码

  before(function() {
    var html = document.createElement('rui-button')
    document.body.appendChild(html)
    tag = riot.mount('hello')[0]
  });

  it('mounts a rui-button tag', function() {
    expect(tag).to.exist
    expect(tag.isMounted).to.be.true
  })

以下是使用mocha + chai + karma https://github.com/vitogit/tdd-mocha-chai-riot测试Riot的教程 或者如果你不想使用业力:https://github.com/vitogit/minimalistic-riotjs-testing在线版本:http://plnkr.co/edit/BFOijJ?p=preview