当我尝试在Firefox中运行Dalek测试时,Firefox浏览器只会打开,但不会运行任何测试.还有其他人碰到这个吗?相同的测试在Chrome和PhantomJS中运行良好.
我的测试非常基础:
dalektest.js
module.exports = {
"Page title is correct": function(test){
test.open("http://localhost:8080")
.assert.title().is("Title", "it has title")
.done()
}
}
Run Code Online (Sandbox Code Playgroud)
的package.json
{
"name": "Dalek-Tests",
"version": "0.1.0",
"devDependencies": {
"dalek-browser-chrome": "0.0.1",
"dalek-browser-firefox": "0.0.1",
"dalekjs": "0.0.1"
}
}
Run Code Online (Sandbox Code Playgroud)
Dalekfile.json
{
"browsers": [{
"firefox": {
"path": "/Applications/FirefoxAurora.app"
}
}]
}
Run Code Online (Sandbox Code Playgroud)
我将所有这些文件放在同一个文件夹中,并尝试使用以下命令运行:
dalek dalektest.js -b firefox
dalek dalektest.js -b chrome
dalek dalektest.js -b phantomjs
Run Code Online (Sandbox Code Playgroud)
其他人工作正常,但Firefox只是打开Firefox,之后没有任何事情发生.
我在Max OS X Lion上.Firefox Aurora是24.0a2(2013-08-04)
由于是新手,无法用'dalekjs'正确标记这个...
在测试控制器时是否有内置方法可以完全跳过授权?
示例控制器:
public function changePassword(Request $request, LdapInterface $ldap)
{
$this->authorize('change-password');
$this->validate($request, [
'pass' => 'min:8|confirmed|weakpass|required',
]);
$success = $ldap->updatePassword($request->get('pass'));
$message = $success ?
'Your e-mail password has been successfully changed' :
'An error occured while trying to change your alumni e-mail password.';
return response()->json(['message' => $message]);
}
Run Code Online (Sandbox Code Playgroud)
我想跳过change-password规则,它是在里面定义的AuthServiceProvider:
public function boot(GateContract $gate)
{
$gate->define('change-password', function ($user) {
// Some complex logic here
});
}
Run Code Online (Sandbox Code Playgroud)
我不想添加smt。就像if (env('APP_ENV') == 'testing') return;在代码里面一样。
在功能测试期间,我需要单击按钮来发出 ajax 请求。
在浏览 symfony 测试文档时,我意识到您是否可以单击:
我的按钮有以下 id = "js-scroll-down"
当我尝试这个时:
$btn = $crawler->filter('#js-scroll-down')->eq(0)->link();
$crawler = $client->click($btn);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
LogicException:无法从“按钮”标签导航。
我正在从 Java 过渡到 scala,并且正在关注https://medium.com/@geovannyjs/function-tests-with-scala-sbt-play-framework-specs2-and-one-application-per-test-suite-22ddf70e5cbe编写我的初始功能测试。
我的测试进展顺利,除了没有调用本文档末尾描述的 setup() 和 cleanup()部分。因此,按照文档,添加:
Test / fork := false
Test / testOptions += Tests.Setup(_.loadClass("common.Resources").getMethod("setup").invoke(null))
Test / testOptions += Tests.Cleanup(_.loadClass("common.Resources").getMethod("cleanup").invoke(null))
Run Code Online (Sandbox Code Playgroud)
在我的build.sbt中。之后我开始收到编译错误:
error: value / is not a member of sbt.Configuration
Run Code Online (Sandbox Code Playgroud)
在
Test / fork := false
Run Code Online (Sandbox Code Playgroud)
我可以了解我做错了什么吗?
这是我正在使用的库:
lazy val thirdPartyDependencies = Seq(
jdbc,
"com.typesafe.play" %% "anorm" % "2.4.0",
"com.typesafe.play" %% "play-mailer" % "3.0.1",
"com.microsoft.sqlserver" % "mssql-jdbc" % "6.4.0.jre8",
"io.swagger" %% "swagger-play2" % "1.5.0", // This version adds Play 2.4 …Run Code Online (Sandbox Code Playgroud) TL;DR如何运行使用navigator.mediaDevicesTestCafe 和 Chromium 及其方法的功能测试?
我正在尝试使用 TestCafe 编写功能测试来测试一些 WebRTC 代码。我正在使用反应。我有一个枚举设备的自定义钩子:
function useUpdateDeviceList() {
const dispatch = useDispatch();
useEffect(() => {
async function updateDeviceList() {
const { audioInputs, videoInputs } = await getInputDeviceInfos();
dispatch(setAudioInputs(audioInputs));
dispatch(setVideoInputs(videoInputs));
}
updateDeviceList();
console.log('navigator', navigator);
navigator.mediaDevices.ondevicechange = updateDeviceList;
return () => {
navigator.mediaDevices.ondevicechange = null;
};
}, [dispatch]);
}
Run Code Online (Sandbox Code Playgroud)
哪里getInputDeviceInfos调用navigator.mediaDevices.enumerateDevices。
当我在浏览器中运行此代码时,它可以完美运行。当它在 TestCafe 的功能测试中运行时,它抛出。
TypeError: Cannot set property 'ondevicechange' of undefined
Run Code Online (Sandbox Code Playgroud)
彻底的谷歌搜索只给出了添加标志--use-fake-ui-for-media-stream和--use-fake-device-for-media-stream启动命令的答案(前者避免了授予摄像头/麦克风权限的需要,并且梯形图getUserMedia()根据文档提供测试模式而不是实时摄像头输入),其中我做了:
TypeError: Cannot …Run Code Online (Sandbox Code Playgroud) 函数(无副作用)是一个基本的构建块,但我不知道用Java测试它们的令人满意的方法.
我正在寻找能够更轻松地测试它们的技巧.这是我想要的一个例子:
public void setUp() {
myObj = new MyObject(...);
}
// This is sooo 2009 and not what I want to write:
public void testThatSomeInputGivesExpectedOutput () {
assertEquals(expectedOutput, myObj.myFunction(someInput);
assertEquals(expectedOtherOutput, myObj.myFunction(someOtherInput);
// I don't want to repeat/write the following checks to see
// that myFunction is behaving functionally.
assertEquals(expectedOutput, myObj.myFunction(someInput);
assertEquals(expectedOtherOutput, myObj.myFunction(someOtherInput);
}
// The following two tests are more in spirit of what I'd like
// to write, but they don't test that myFunction is functional:
public void …Run Code Online (Sandbox Code Playgroud) 这是我写的一些代码,用于检查string's文件中的状态:
bool aviasm::in1(string s)
{
ifstream in("optab1.txt",ios::in);//opening the optab
//cout<<"entered in1 func"<<endl;
char c;
string x,y;
while((c=in.get())!=EOF)
{
in.putback(c);
in>>x;
in>>y;
if(x==s)
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
确保被搜索的字符串位于第一列中,optab1.txt并且optab1.txt每行中总共有两列.现在的问题是,无论传递什么字符串s,因为函数的参数总是返回false.你能告诉我为什么会这样吗?
如果你的系统基本上处理数字,即给定一组大输入,对它们运行一个进程,然后断言输出,这是更好的框架吗?
通过"大输入",我的意思是我们需要为几个不同的相关实体输入数据.
此外,有几个输出,即我们不只是在最后得到一个数字.
有人能告诉我如何在完成帧切换后继续引用iframe中的元素吗?我已经看过如何切换iframes InternJS中提供的解决方案无效,而实用的功能测试框架中的信息是不适用的(还是.)以下脚本返回错误Cannot read property 'apply' of undefined type: TypeError:
return Remote
.findAllByTagName('iframe')
.then(function (frames) {
return new Remote.constructor(Remote.session)
.switchToFrame(frames[0])
.getProperty('title')
.then(function (result) {
expect(result).to.equal('Rich text editor, rtDescAttach');
});
});
Run Code Online (Sandbox Code Playgroud)
我可以看到脚本失败的唯一原因是框架未正确定位.页面上有两个,我需要第一个.一旦完成,我真的想把一个框架的引用放在一个页面对象(这是我觉得它属于的地方),但我必须能够成功找到它,所以不要把车放在马前.建议和帮助非常感谢.
最近,我发现我对不同类型的测试的理解可能并不完全正确。
例如,单元测试是对一个单元的测试,其中与其他单元的交互基于模拟(假冒,存根)。因此,无需与文件系统,线程,时间交互...
对我而言,组件测试是围绕一个组件(更多单元)进行的测试,在该组件中我同时使用了模拟和“实际”资源。我都将它们都用于输入仿真和输出测试。似乎更合适的东西。例如,我在嘲笑当前仲裁状态的更改,但是我断言事件存储在RTDB中。
对我而言,这些组件通常是一个应用程序的一部分。
我认为功能测试围绕生产环境中运行的应用程序(exe)进行(黑盒)测试。
好吧,这是真的吗?组件测试是否仅基于模拟?如果是,为什么?我如何确定模拟足够好?我们是否应该通过功能测试运行应用程序?为什么与线程中的应用程序主例程的引导不同?什么是集成测试?
我想听听其他意见,以及您如何做到这一点。您有哪些测试,如何维护它们,以及团队中谁负责?
干杯!