有没有办法在量角器的beforeEach()中从jasmine数据提供者获取方法名称或数据值;我们可以在selenium中使用testNg- beforeMethod()吗?
方法之前的TestNg- beforeMethod(final Object []数据,最终方法方法)
同样我想要protrcator的beforeEach()。
答案 0 :(得分:2)
我建议的一件事是在单独的模块中定义您的数据值,然后导入您的spec文件。
#Population Estimate Loops
data <- read.csv("C:/Users/Bryan/Desktop/CREP dissertation/ch.2CREPPopulationestimate/N-mixture data/FedCREP_updated2010abuffer200m_1.csv",header=TRUE)
#28000
sims <- 100
areaWanted <- 28000
finalPop = matrix(nrow = 100, ncol = 1)
areaha = matrix(nrow = 100, ncol = 1)
for (i in 1:sims) {
allData <- data[0,]
ha <- 0
sampData <- data[0,]
while (ha < areaWanted) {
line <- sample(1:nrow(data), 1)
randomData <- data[line,]
sampData <- rbind(sampData, randomData)
ha <- (ha + (data[line, 2]))
}
grass <- scale(sampData[,10])
for (j in 1:nrow(sampData)){
grass1 <- grass[j]
abund <- backTransform(linearComb(BEVIgrass, c(1, grass1), type="lambda"))
sampData[j, 12] <- abund@estimate
sampData[j, 13] <- (sampData[j, 12])*(sampData[j, 2])
}
finalPop[i] <- sum(sampData[,13])
areaha[i] <- sum(sampData[,2])
}
然后将它包含在您的beforeEach中,如下所示:
// Your data in its own module
'use strict'
module.exports = {
browserSizes : {
'Browser 1': {x: 800, y: 600},
'Browser 2': {x: 300, y: 200}
}
}
这样,您只需将新的浏览器大小添加到模块文件中,即可在spec文件中随时访问它。如果你想查看具体的内容,我写了一篇关于如何以这种方式使用Jasmine Data Provider的教程
http://moduscreate.com/protractor-and-jasmine-data-provider-write-once-test-many/
希望这有帮助!
答案 1 :(得分:1)
尝试这种方法,如@alexce建议
Protractor Multiple Size Browsers
describe("Testing multiple browser sizes", function () {
var sizes = [
{x: 800, y: 600},
{x: 300, y: 200}
];
sizes.map(function(size) {
it("should pass the test on browser size: x='" + size.x + "', y='" + size.y + "'", function() {
browser.driver.manage().window().setSize(size.x, size.y);
# test logic
});
}
});
您可能不需要jasmine-data-provider,只需连接到您需要的规范名称。