我正在使用HUnit编写一些测试,我想断言特定函数在给定某个输入的情况下抛出异常.我找不到提供所需功能的断言功能.有人知道测试框架吗?
我有这样定义的模型
class Lga < ActiveRecord::Base
validates_uniqueness_of :code
validates_presence_of :name
end
Run Code Online (Sandbox Code Playgroud)
我为Lgas定了一个工厂
Factory.sequence(:lga_id) { |n| n + 10000 }
Factory.define :lga do |l|
id = Factory.next :lga_id
l.code "lga_#{id}"
l.name "LGA #{id}"
end
Run Code Online (Sandbox Code Playgroud)
但是,当我跑
Factory.create(:lga)
Factory.create(:lga)
Run Code Online (Sandbox Code Playgroud)
在script/console我得到
>> Factory.create(:lga)
=> #<Lga id: 2, code: "lga_10001", name: "LGA 10001", created_at: "2010-03-18 23:55:29", updated_at: "2010-03-18 23:55:29">
>> Factory.create(:lga)
ActiveRecord::RecordInvalid: Validation failed: Code has already been taken
Run Code Online (Sandbox Code Playgroud) GNU的cpp允许您将宏参数转换为字符串
#define STR(x) #x
Run Code Online (Sandbox Code Playgroud)
然后,STR(hi)被替换为"hi"
但是,如何将宏(不是宏参数)转换为字符串?
假设我有一个具有某些值的宏CONSTANT,例如
#define CONSTANT 42
Run Code Online (Sandbox Code Playgroud)
这不起作用:STR(CONSTANT).这产生"CONSTANT"的不是我们想要的.
我正在尝试使用WebGL显示一个简单的效果.当然,这意味着我正在使用GLSL ES 1.0规范中定义的片段着色器语言.
我正在使用的代码主要是从其他来源复制的.它设置一个正方形并使用片段和顶点着色器来确定像素颜色.以下代码将只显示一个白色方块.
gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
Run Code Online (Sandbox Code Playgroud)
但是,如果我将alpha分量更改为1.0然后它将显示黑色方块.
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); // displays a black square
Run Code Online (Sandbox Code Playgroud)
我假设片段着色器输出的颜色必须与之前的颜色组合.如何确保只有最后一种颜色(不论其alpha值)是否实际被选为要显示的颜色?
或者也许我的订单错了.也许后期阶段与片段着色器中的颜色组合以产生白色.在任何情况下,我都知道正在进行某种混合,因为当我将alpha值更改为0.5时,我得到一个灰色方块.我只是想知道,白色来自哪里?我怎么摆脱它呢?
据我所知,问题与混合功能无关.该代码是在GitHub 这里.在Google Chrome或Firefox中试用.
c++ ×1
colors ×1
compositing ×1
constants ×1
factory-bot ×1
glsl ×1
haskell ×1
string ×1
testing ×1
webgl ×1