我有一项工作任务似乎无法完成,因为我没有完全掌握工具集.我应该使用JBehave和Selenium Web Driver来将某本书添加到亚马逊帐户的心愿单上.我有一个给定的故事,我应该使用前面提到的工具用于"学习目的".我知道JBehave是BDD的框架.所以,我有一些我想测试的故事.然而,令我困惑的是配置和"步骤定义"部分,我没有真正得到.我的问题是我真的不明白如何让所有这些部分一起工作.Selenium WebDriver在哪个方面适合?请注意,我已经使用Selenium和Java,这是一件轻而易举的事.
我想以gherkin格式给你一个故事的例子,我很欣赏这个主题的任何见解,也许是对所有部分如何组合起来的澄清.
Given user <username> with password <password> has a valid amazon.com account
And has a wish list
And wants to purchase book <title> at a later date
When a request to place the book in the wish list is made
Then the book is placed in the wish list
And the book <title> appears in the wish list when <username> logs in at a later date.
Run Code Online (Sandbox Code Playgroud) 我尝试使用gmail smtp config从Lumen发送电子邮件.我在用:
illuminate/mail,版本 5.3 lumen,版本 5.3我无法发送电子邮件.
我的路由器:
$app->get('/', function () use ($app) {
$app->get('mail','mailcontroller@mail');
});
Run Code Online (Sandbox Code Playgroud)
我的AppServiceProvider.php:
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider {
public function register() {
$this->app->singleton('mailer', function ($app) {
$app->configure('services');
return $app->loadComponent('mail', 'Illuminate\Mail\MailServiceProvider', 'mailer');
});
}
}
Run Code Online (Sandbox Code Playgroud)
我的.env配置:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=*******@gmail.com
MAIL_PASSWORD=*********
MAIL_ENCRYPTION=tls
Run Code Online (Sandbox Code Playgroud)
我的邮件控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Mail;
class mailcontroller extends Controller {
public function mail(){
Mail::raw('Raw string email', function($msg) {
$msg->to(['****.com']);
$msg->from(['*****@gmail.com']); });
}
} …Run Code Online (Sandbox Code Playgroud) 我正在编写一个P4Perl脚本来连接Perforce服务器并自动执行Perforce命令.随着子程序的开发以访问Perforce,我也在开发单元测试来验证它们.我是Perl和单元测试的新手.
这是我与Perforce建立连接的子例程.文件名是p4_connect.pl
use warnings;
use strict;
use P4;
my $clientname = "johndoe"
my $p4port = "icmanage:1667"
main();
sub main {
my $status;
$status = connect_perforce($clientname, $p4port);
};
sub connect_perforce {
my ($clientname, $p4port) = @_;
my $status;
my $p4 = new P4;
$p4->SetClient( $clientname );
$p4->SetPort( $p4port );
$status = $p4->Connect() or die( "Failed to connect to Perforce Server" );
return $status;
}
Run Code Online (Sandbox Code Playgroud)
运行时Perl脚本执行正常"perl p4_connect.pl",不会抛出任何错误.
但是,当我将connect_perforce子例程移动到包模块(Perforce.pm)并(perforce.t)为其编写单元测试时,我遇到了以下错误:
username@hostname% perl -Ilib t/perforce.t
ok …Run Code Online (Sandbox Code Playgroud) 我正在使用${varname}语法在我的Fitnesse测试中引用环境变量,形式为
| check | Project Name | ${PROJECT_NAME} |
Run Code Online (Sandbox Code Playgroud)
大部分时间这都很好,但偶尔环境变量的值是(巧合)WikiWord格式,这搞砸了测试,因为Fitnesse将其视为页面链接:
| check | Project Name | MyTestProject[?] |
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用!- -!语法来抑制格式化,但这会阻止变量被解析.有没有办法在解析变量后抑制wikiword格式?
我无法区分TDD和BDD.有人能给出一个简单的例子来说明使用jasmine在javascript上下文中的区别吗?
我不能让我的代码通过这个测试:
it "translates two words" do
s = translate("eat pie")
s.should == "eatay iepay"
end
Run Code Online (Sandbox Code Playgroud)
我没有看到我的逻辑中的缺陷,虽然它可能是非常强大的力量,并且可能有一种更简单的方式来通过测试:
def translate(string)
string_array = string.split
string_length = string_array.size
i=0
while i < string_length
word = string_array[i]
if word[0] == ("a" || "e" || "i" || "o" || "u")
word = word + "ay"
string_array[i] = word
elsif word[0] != ( "a" || "e" || "i" || "o" || "u" ) && word[1] != ( "a" || "e" || "i" || "o" || "u" ) …Run Code Online (Sandbox Code Playgroud) BDD(行为驱动开发)框架和cucumber的优点是什么?
我想知道 BDD 的所有优点是什么。
我正在尝试将一个工厂和两个构造函数模式写入Angular.我希望工厂成为Angular服务.
所以我有一些代码(非常基本上)看起来像这样:
function processFactory () {
// some code...
}
angular.service('processFactory', processFactory);
Run Code Online (Sandbox Code Playgroud)
但最后一行给我一个错误,读取undefined不是一个函数.
bdd ×3
javascript ×2
angularjs ×1
automation ×1
cucumber ×1
cucumber-jvm ×1
fitnesse ×1
jasmine ×1
jbehave ×1
laravel ×1
lumen ×1
perforce ×1
perl ×1
phpmailer ×1
rspec ×1
ruby ×1
tdd ×1
testing ×1
unit-testing ×1
wiki ×1