小编Gáb*_*kos的帖子

如何使用rspec测试ActionMailer deliver_later

尝试使用delayed_job_active_record升级到Rails 4.2.我没有为测试环境设置delayed_job后端,因为工作会立即执行.

我正在尝试使用Rspec测试新的'deliver_later'方法,但我不确定如何.

旧控制器代码:

ServiceMailer.delay.new_user(@user)
Run Code Online (Sandbox Code Playgroud)

新控制器代码:

ServiceMailer.new_user(@user).deliver_later
Run Code Online (Sandbox Code Playgroud)

我用它来测试它是这样的:

expect(ServiceMailer).to receive(:new_user).with(@user).and_return(double("mailer", :deliver => true))
Run Code Online (Sandbox Code Playgroud)

现在我使用它会出错.(Double"mailer"收到意外消息:deliver_later with(no args))

只是

expect(ServiceMailer).to receive(:new_user)
Run Code Online (Sandbox Code Playgroud)

nil的'undefined方法`deliver_later'也失败了:NilClass'

我已经尝试了一些示例,允许您查看作业是否在ActiveJob中使用test_helper排队,但我还没有设法测试正确的作业是否排队.

expect(enqueued_jobs.size).to eq(1)
Run Code Online (Sandbox Code Playgroud)

如果包含test_helper,则会通过,但它不允许我检查它是否是正在发送的正确电子邮件.

我想做的是:

  • 测试正确的电子邮件是否已排队(或在测试环境中立即执行)
  • 使用正确的参数(@user)

有任何想法吗??谢谢

rspec ruby-on-rails actionmailer delayed-job rails-activejob

63
推荐指数
7
解决办法
2万
查看次数

IDEA无法重新导入sbt项目

使用当前稳定版本的(社区)IDEA(2021.1.2)和Scala插件(2021.1.21)经常发生这种情况,我在Windows下对sbt文件(例如sbt版本1.5.3)进行更改,IDEA显示它需要导入,但失败并显示:

提取结构失败,原因:不正常构建状态:错误(BuildMessages(Vector(),Vector(),Vector(),Vector(),Error))

sbt 文件是正确的(而且错误消息也不是很有帮助)。我还运行了 sbt shell,尽管它没有执行任何操作。

下面是IDEA的sbt相关配置(Build、Execution、Deployment | Build Tools | sbt): sbt 的 IDEA 设置

intellij-idea sbt

23
推荐指数
1
解决办法
2万
查看次数

使用Sparks安装安全的CodeIgniter

安装Sparks假定您遵守默认的CodeIgniter安装模式; 将应用程序,系统和用户指南文件夹以及index.php和许可证文件提取到Web根目录中.

但是,出于安全原因,我们中的许多人将应用程序和系统文件夹从Web根目录中拉出来,并在主index.php文件中重新路由$ system_path和$ application_folder变量.

这种分离往往会破坏Spark的安装.特别是,在getsparks安装说明中使用的简单示例spark .

得到错误:

遇到错误无法在sparks找到火花路径/ example-spark/1.0.0 /

我维护以下目录结构:

  • CISYS
    • V202
    • V200
  • project1_application
  • project2_application
  • project3_application
  • www(公共HTML)
    • PROJECT1
      • CSS
      • JS
      • 图片
      • 等等
    • 项目2
      • 等等

我必须改变什么来实现安全+火花?打开任何类型的建议.你如何设置你的安装?

security codeigniter sparks-pakage-management

14
推荐指数
1
解决办法
2823
查看次数

java.lang.NoSuchMethodError:sbt.package $ .Zero()Lsbt/Global $;

使用Scala.js 0.6.20(addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.20")in project/plugins.sbt)时,尝试使用sbt 0.13.15导入项目时发生以下错误:

java.lang.NoSuchMethodError: sbt.package$.Zero()Lsbt/Global$;
        at org.scalajs.sbtplugin.ScalaJSPluginInternal$.org$scalajs$sbtplugin$ScalaJSPluginInternal$$scalaJSStageSettings(ScalaJSPluginInternal.scala:254)
        at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$22.apply(ScalaJSPluginInternal.scala:446)
        at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$22.apply(ScalaJSPluginInternal.scala:446)
        at scala.Function2$$anonfun$tupled$1.apply(Function2.scala:54)
        at scala.Function2$$anonfun$tupled$1.apply(Function2.scala:53)
Run Code Online (Sandbox Code Playgroud)

类似的问题:https://gitter.im/scala-js/scala-js?at = 59b53890b59d55b823db1dcd

sbt scala.js

9
推荐指数
1
解决办法
1111
查看次数

安装XAMPP后安装Mercury

我最初安装了XAMPP而没有检查Mercury安装.当然,模块显示在XAMPP控制面板中但是被禁用,没有意义从那里安装它.如果不重新安装整个XAMPP包,我该怎么办?

xampp installation mercury-mta

8
推荐指数
1
解决办法
2万
查看次数

奇怪的自动完成导致emacs +常见的lisp

我在我的开发环境中使用Emacs和SLIME.当我输入(write-to然后C-M-i我得到以下自动填充:

Click on a completion to select it.
In this buffer, type RET to select the completion near point.

Possible completions are:
write-to-sting
write-to-string
Run Code Online (Sandbox Code Playgroud)

我知道Common Lisp很强大,但我猜write-to-sting不是ANSI标准.谷歌没有为这个功能提供一次点击.然后我试着在SBCL代码中找到它,但是

(documentation 'write-to-sting 'function)返回,nil因此它没有文档字符串.

当我尝试执行(write-to-sting)我得到的功能时The function COMMON-LISP-USER::WRITE-TO-STING is undefined.

Apropos还发现了一个未绑定的函数:

(apropos 'write-to)
WRITE-TO
WRITE-TO-STING
WRITE-TO-STRING (fbound)
Run Code Online (Sandbox Code Playgroud)

我的问题是:发生了什么事?有谁知道这个功能背后的故事?

common-lisp slime completion

7
推荐指数
1
解决办法
106
查看次数

Scala Swing:在Component上缺少JComponent方法

我想使用setComponentPopupMenu().但是Scala.Swing.Component似乎没有所有JComponent方法,尽管文档中引用了javax.swing.JComponent.所以我有点困惑.

scala scala-swing

5
推荐指数
1
解决办法
150
查看次数

Hbase HDFS集成 - Hbase Master无法启动

我已经在虚拟盒上配置了并行运行的两个节点集群.

/ etc/hosts文件的内容如下两个linux发行版

hduser@ubuntu-master:~$ cat /etc/hosts
192.168.56.103  Ubuntu-Master master
192.168.56.102  LinuxMint-Slave slave
10.33.136.219   inkod2lp00100.techmahindra.com inkod2lp00100


hduser@LinuxMint-Slave ~ $ cat /etc/hosts
192.168.56.103  Ubuntu-Master master
192.168.56.102  LinuxMint-Slave slave
10.33.136.219   inkod2lp00100.techmahindra.com inkod2lp00100
Run Code Online (Sandbox Code Playgroud)

两个linux发行版中hbase-site.xml(Location - /usr/local/hbase/conf)的内容如下 -

hduser@ubuntu-master:~$ cat /usr/local/hbase/conf/hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

<property>
  <name>hbase.tmp.dir</name>
  <value>file:///usr/local/hbase/hbasetmp/hbase-${user.name}</value>
</property>

<property>
    <name>hbase.master</name>
    <value>Ubuntu-Master:16000</value>
    <description>The host and port that the HBase master runs at.</description>
</property>

  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://Ubuntu-Master:54310/hbase</value>
  </property>

<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>

<property>
  <name>hbase.zookeeper.quorum</name>
  <value>Ubuntu-Master,LinuxMint-Slave</value>
</property>

   <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>file:///usr/local/hbase/zookeeperdata</value>
  </property>

<property>
     <name>hbase.zookeeper.property.clientPort</name>
   <value>2222</value>
 </property> …
Run Code Online (Sandbox Code Playgroud)

hbase hdfs

5
推荐指数
1
解决办法
1942
查看次数

我有2个排序的整数数组,如何在O(logn)时间内找到第k个最大的项目?

我在接受采访时被问到这个问题.我明显可以在O(n)时间内完成它,但我没有考虑在O(logn)中解决问题的方法.这听起来像使用一些分而治之的算法,但我不确定.

java sorting algorithm

4
推荐指数
1
解决办法
401
查看次数

Java多个三元运算符

我正在研究一些Java,因为我遇到了下面这段代码.我理解典型的三元运算符(例如下面以"boolean a"开头的行),但我无法理解如何读取以"boolean b"开头的行上的表达式.任何有关如何阅读此行的帮助将不胜感激!谢谢!

public class Ternary{
    public static void main (String[] args){
        int x = 10;
        int i = 2;
        boolean a = x > 10 ? true: false;
        boolean b = a = true ? ++i > 2 ? true:false:false;
        System.out.print(b);
    }
}
Run Code Online (Sandbox Code Playgroud)

java ternary-operator ternary assignment-operator

4
推荐指数
1
解决办法
2361
查看次数