量角器 - 检查字符串的最佳方法在e2e测试中不是空的

Zab*_*abs 10 javascript testing jasmine protractor gulp-protractor

使用e2e测试确保找到值(例如不是空字符串)的最佳方法是什么,我的示例只是匹配文本本身,我想计算字符串长度并确保它不是0.

describe 'Device Details', ->
device = ionic.Platform.device()
details =
'deviceManufacturer': $('#deviceManufacturer'),
'deviceModel': $('#deviceModel')

it 'Device Manufacturer must not be empty', ->
  expect(details.deviceModel.getText()).toEqual '10'
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 17

有不同的方法可以做到这一点,但我更喜欢toBeNonEmptyString()jasmine-matchers - 简单和可读:

expect(details.deviceModel.getText()).toBeNonEmptyString();
Run Code Online (Sandbox Code Playgroud)

  • 安装一个包虽然不错,但可能会过度优化。我发现 @Surendra Janwali 的答案在可读性上同样简洁:expect().not.toBe(''); 但不需要包 (2认同)

KCa*_*nna 10

不使用茉莉花匹配器.

   details.deviceModel.getText().then(function(text) {
      expect(text.length).not.toEqual(0)
    });
Run Code Online (Sandbox Code Playgroud)

请参阅以下评论以获取警告

  • 这可能不是问题,但请注意,除了原语、空字符串和空数组之外,此测试将通过所有内容。例如,“.length”为“undefined”的对象将通过此测试,因为它不等于零。希望这会有所帮助,同样,对于您的特定情况,这可能不是问题。 (3认同)

Sur*_*ali 9

尝试not.toBe('')检查不是空的

expect(details.deviceModel.getText()).not.toBe(''); 
Run Code Online (Sandbox Code Playgroud)

===其他情况====

 expect('hello world').not.toBe(''); //true 
 expect('').toBe(''); //true
Run Code Online (Sandbox Code Playgroud)